欢迎光临
我们一直在努力

Java面向对象知识点 

一、两种编程思维(了解即可)

1. 面向过程:把要解决的事拆成一步一步的操作,按顺序走完所有步骤就能完成任务,更聚焦做事的流程细节。

2. 面向对象:先梳理出程序里会涉及的所有事物(也就是对象),把每个事物当成独立整体,依靠事物之间的关联配合来解决问题。

 

二、什么是对象(需要理解) 

1. 现实里的各类事物,在Java代码里的呈现形式就是对象,万物都可以被抽象成对象。

2. 对象包含两部分内容:

(1) 属性:事物自带的静态特征、特点,在代码里用变量来实现。

(2) 方法:事物能实现的功能、能做出的行为,在代码里用函数/方法实现。

3. 类的作用:用类来归纳描述一类对象统一拥有的属性和方法。

4. 类和对象的关系:

(1) 类是对象的设计模板、蓝图;

(2) 对象是按照类的模板造出来的具体实例,一个模板能批量造出很多个不同实例。

 

三、类的构成(开发重点内容)

 

1. 属性(成员变量):刻画一类事物的特征

 

(1) 也叫成员变量;

(2) 书写位置:写在大括号的类体里,不能放在方法内部;

(3) 书写规则:

基础写法: 数据类型 变量名; 

声明同时赋值: 数据类型 变量名 = 初始值; 

注意:不能先单独声明成员变量,再在类体里单独写赋值语句,初始化要和声明写在一起,比如:

 

java

class A{

    int value;

    value = 20; // 这种写法非法,初始化必须跟着声明完成

}

 

 

(4) 开发小提示:定义类的时候,只需要写业务需要用到的属性,不用把事物所有特征都罗列出来。

 

(中间过渡内容)

注意:方法做重载设计时,要避免参数设计太接近,出现调用匹配混乱的情况。

d. 重载的好处:能让代码通用性、灵活性变得更强。

 

3. 构造方法

 

(1) 它是类里一种特殊的方法,也叫构造器;

(2) 专属特点:

a. 方法名必须和类名完全一模一样;

b. 没有返回值,连 void 关键字都不能加;

格式: 修饰符 类名(形参列表){} 

c. 支持方法重载;

d. 不能手动在代码里直接调用;

(3) 使用注意事项:

a. 构造方法不能手动调用,创建对象时JVM会根据传入的实参,自动匹配对应构造方法完成对象创建,一个对象创建全程只会执行一次构造方法;

b. 如果一个类没有写任何构造方法,JVM会自动给这个类补一个公开的无参构造;只要你写了任意一个有参构造,JVM就不会再自动补默认无参构造了;

(4) 核心用途:一般用来给对象的属性做初始化赋值;

(5) 开发建议:写类的时候,常规要同时提供无参构造和全参构造,多数场景下有参构造的参数数量、类型要和类里的属性对应上。

 

四、对象怎么创建和使用

 

1. 创建格式: 类名 对象名 = new 类名(); 

2. 对象的操作方式:

(1) 属性操作:

赋值: 对象名.属性名 = 数值; 

取值: 对象名.属性名 

(2) 调用方法: 对象名.方法名(实参数据); 

 

五、this关键字的两种用法(开发高频使用)

 

1.  this.  访问成员

 

(1)  this 就代表当前正在操作的对象,可以理解成“我这个对象”;

(2) 在普通成员方法、构造方法里,用 this. 就能调用当前对象自身的属性和方法;

(3) 细分用法:

 this.属性名 :特指当前对象的成员属性

 this.方法名(实参) :特指调用当前对象的成员方法

(4) 小细节:大部分情况 this. 可以省略,但如果成员变量和方法里的局部变量重名了,必须加 this. 来区分成员变量。

 

2.  this()  调用本类其他构造方法

 

(1) 只能写在构造方法内部,用来调用同一个类里别的构造方法;

(2) 细分用法:

 this() :调用本类的无参构造

 this(实参) :调用本类对应参数列表的有参构造

(3) 硬性规则: this() / this(实参) 必须放在构造方法里的第一行有效代码位置;

(4) 避坑提醒:不能在多个构造方法里互相循环调用 this() ,不然会出现递归死循环,一个类里不能所有构造方法第一行都写 this() 相关调用。

 

六、对象创建的底层流程(需要理解)

 

1. 分配内存空间:给对象所有属性分配内存,同时赋上系统默认初始值;

2. 显式初始化属性:执行声明时写的赋值代码,给属性第二次赋值;

3. 执行构造方法:运行构造方法里的代码,给属性完成第三次赋值。

 

七、引用相关知识(难点重点理解)

 

1. 引用:对象类型的变量就叫做引用类型变量,简称引用;

2. 引用变量里存的,是对象在堆内存里的首地址;

3. 不同对象互相独立,堆内存会给每个对象划分专属的存储空间;

4. 引用可以单独声明不初始化: 类名 引用名; 

示例: Worker w; 

5. 如果引用赋值为 null ,再用这个引用调用属性或方法,编译能通过,但运行会抛出 java.lang.NullPointerException 空指针异常;

6. 引用之间互相赋值,传递的是对象的堆内存地址;而基本数据类型变量互相赋值,传递的是具体的数值;

7. 引用可以用在方法形参、方法返回值、数组元素这些场景里。

 

赞(0)
未经允许不得转载:171主机测评 » Java面向对象知识点 
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址