博客
关于我
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/

你可能感兴趣的文章
numpy 或 scipy 有哪些可能的计算可以返回 NaN?
查看>>
numpy 数组 dtype 在 Windows 10 64 位机器中默认为 int32
查看>>
numpy 数组与矩阵的乘法理解
查看>>
NumPy 数组拼接方法-ChatGPT4o作答
查看>>
numpy 用法
查看>>
Numpy 科学计算库详解
查看>>
Numpy.fft.fft和numpy.fft.fftfreq有什么不同
查看>>
numpy.linalg.norm(求范数)
查看>>
Numpy.ndarray对象不可调用
查看>>
Numpy.VisibleDeproationWarning:从不整齐的嵌套序列创建ndarray
查看>>
Numpy:按多个条件过滤行?
查看>>
Numpy:条件总和
查看>>
numpy、cv2等操作图片基本操作
查看>>
numpy中的argsort的用法
查看>>
NumPy中的精度:比较数字时的问题
查看>>
numpy判断对应位置是否相等,all、any的使用
查看>>
Numpy多项式.Polynomial.fit()给出的系数与多项式.Polyfit()不同
查看>>
Numpy如何使用np.umprod重写range函数中i的python
查看>>
numpy学习笔记3-array切片
查看>>
numpy数组替换其中的值(如1替换为255)
查看>>