博客
关于我
Java-面向对象
阅读量:73 次
发布时间:2019-02-25

本文共 1779 字,大约阅读时间需要 5 分钟。

面向对象编程入门

一、面向对象的概念

面向对象编程是一种基于对象的编程范式,与面向过程编程有着本质的区别。面向过程编程(如C语言)关注的是程序的执行流程,而面向对象编程(如Java、C++、Python)则更注重新现实世界中事物的属性与行为。

面向过程 vs 面向对象

  • 面向过程:程序的执行者为主,方法论基于流程图。
  • 面向对象:程序的行为由对象执行,方法论基于类和对象。

面向对象的思维方式更贴近人类的日常交流方式,能够更好地反映实际生活中的事物特性。

二、类与对象

类的定义

类是一个事物的数据类型,是实体属性的集合。一个类具备基本信息和行为特征。

  • 类的基本信息:如工号、姓名、部门等。
  • 类的行为:如打针、护理等具体操作。

对象的概念

对象是根据类创建的具体实例,具备类中的所有属性和行为。例如:

  • :护士类

    • 基本信息:工号、姓名、部门
    • 行为:打针、护理
  • 对象:护士对象

    • 基本信息:89757、马磊、肛肠科
    • 行为:具体的打针动作、护理流程

在代码中,类的属性对应对象的属性,行为对应对象的方法。

三、成员与局部变量

成员变量 vs 局部变量

  • 成员变量

    • 作用范围:整个类
    • 默认值:与数组默认值一致
    • 生命周期:随对象创建而生,随对象释放而死
  • 局部变量

    • 作用范围:仅在方法中使用
    • 默认值:无
    • 生命周期:随方法执行结束而释放

成员方法 vs 局部方法

成员方法可以被类中任何方法调用,而局部方法仅限于当前方法使用。

四、类的定义与对象的创建

类的定义

类的定义格式如下:

public class 类名 {    属性定义;    方法定义;}

例如,定义一个Hero类:

public class Hero {    public String name; // 姓名    public int hp;    // 健康值    public boolean gender; // 性别    public int level; // 等级    public int exp; // 经验值    public void attack() { // 攻击方法    }    public void back() { // 退后方法    }    public void shopping() { // 购物方法    }}

对象的创建

创建对象的语法格式:

数据类型 对象名 = new 数据类型();

例如,创建一个Hero对象:

Hero h = new Hero();

属性与方法的调用

属性的使用方式:

// 赋值:h.name = "亚索";// 获取:int hp = h.hp;// 打印:System.out.println(h.exp);

五、引用数据类型作为方法参数和返回值

引用数据类型的传递与返回

  • 参数传递:传递引用类型时,方法接收到的是实参的地址。
  • 返回值:返回引用类型时,接收变量保存的是返回值的地址。

注意事项

  • 空指针异常:确保引用变量不为null,避免在使用对象的属性或方法时引发异常。
  • 示例:避免不经处理的null指针导致程序崩溃。

六、构造函数

构造函数的特点

  • 函数名:与类名一致。
  • 返回类型:无,不能为void。
  • 隐式构造函数:每个类都有一个默认的无参构造函数。
  • 构造函数重载:通过提供不同参数列表实现多种构造方式。

构造函数的作用

  • 创建对象:实例化类。
  • 初始化属性:为对象属性赋予初始值。

构造函数重载示例

public Employee(String a, int b, String c) {    name = a;    level = b;    report = c;}Employee e = new Employee("张三", 4, "良好");

this关键字

  • 作用:获取当前对象地址,避免属性和方法的混淆。
  • 示例
public Employee(String name, int level, String report) {    System.out.println("this的地址:" + this);    this.name = name;    this.level = level;    this.report = report;}
  • 特殊用途:调用其他构造函数,简化代码。

转载地址:http://qss.baihongyu.com/

你可能感兴趣的文章
php函数性能优化中应注意哪些问题?
查看>>
PHP函数操作数字和汉字互转(100以内)
查看>>
PHP函数方法
查看>>
PHP创建目录mkdir无写入权限的问题解决方案
查看>>
PHP删除指定目录下的所有文件和文件夹 | 删除指定文件
查看>>
php删除文件夹下面所有文件包括(删除文件夹)不删除文件夹
查看>>
React Collapse Pane 项目教程
查看>>
php判断ip黑名单程序代码
查看>>
php判断复选框是否被选中的方法
查看>>
PHP判断指定目录下是否存在文件
查看>>
php判断数组是否为空
查看>>
PHP判断数组是否有重复值、获取重复值
查看>>
springboot基于Web的社区留守儿童管理系统源码毕设+论文
查看>>
Springboot基于Redisson实现Redis分布式可重入锁【案例到源码分析】
查看>>
PHP利用正则表达式实现手机号码中间4位用星号(*)替换显示
查看>>
PHP加密与安全的最佳实践
查看>>
PHP加速器eaccelerator导致php-fpm进程卡死原因分析
查看>>
PHP区分 企业微信浏览器 | 普通微信浏览器 | 其他浏览器
查看>>
php原生代码怎么连表查询,PHP tp5中使用原生sql查询代码实例
查看>>
PHP去掉转义符
查看>>