面向对象&构造方法总结

发布时间 2023-12-28 20:44:33作者: ZWJAS

总结

面向对象-类和对象

面向对象概念

就是一种编程思想,是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。

什么是类?
类是具备某些共同特征的实体的集合,是对所具有相同特征实体的抽象, 例如人类、车类、星球类,动物类, 猪类等。
什么是对象?
对象是类的实例,简单的认为对象就是类中具体的个体。

对象划分为两个部分,即动态部分(方法)与静态部分(成员变量)。
静态部分:顾名思义就是不能动的部分,这个部分被称为“属性”,如一个人,它包括高矮、胖瘦、性别、年龄等属性——成员变量。
动态部分:人可以哭泣、微笑、说话、行走,这些是这个人具备的行为(动态部分)——方法。

设计类要求
1.类名,大驼峰,见名知意,不能以jdk中存在的类命名
2.成员变量名和方法名,小驼峰,见名知意
3.在类名、方法名、成员变量名上面写文档注释

修饰符概念
对Java当中的,类,变量,方法,构造方法等等.....进行修饰,赋予被修饰内容特殊意义。

类修饰符

public(访问控制符): 将一个类声明为公共类,他可以被任何对象访问,一个程序的主类必须是公共类。
abstract:将一个类声明为抽象类,没有实现的方法,需要子类提供方法实现。
final:将一个类申明为最终(即非继承类),表示他不能被其他类继承。
默认不写:默认的修饰符,只有在相同包中的对象才能使用这样的类。
3.2.2.2 成员变量修饰符
public(公共访问控制符):指定该变量为公共的,他可以被任何对象的方法访问。
private(私有访问控制符):指定该变量只允许自己的类的方法访问,其他任何类(包括子类)中的方法均不能访问。
protected(保护访问控制符):指定该变量可以别被自己的类和子类访问。在子类中可以覆盖此变量。
默认不写 :在同一个包中的类可以访问,其他包中的类不能访问。
final:最终修饰符,指定此变量的值不能变。
static(静态修饰符):指定变量被所有对象共享,即所有实例都可以使用该变量。变量属于这个类。
transient(过度修饰符):指定该变量是系统保留,暂无特别作用的临时性变量。
volatile:指定该变量可以同时被几个线程控制和修改。

方法修饰符

public(公共控制符: 指定此方法可以被自己和其他的类访问
private(私有控制符):指定此方法只能有自己类等方法访问,其他的类不能访问(包括子类)
protected(保护访问控制符):指定该方法可以被它的类和子类进行访问。
final:指定该方法不能被重载。
static:指定不需要实例化就可以激活的一个方法。
synchronize:同步修饰符,在多个线程中,该修饰符用于在运行前,对他所属的方法加锁,以防止其他线程的访问,运行结束后解锁。
native:本地修饰符。指定此方法的方法体是用其他语言在程序外部编写的

测试类的写法:
1. 创建对象
2. 给对象成员变量赋值
3. 打印:对象取值
4. 对象调用方法

构造方法

概念:就是一个类中的新结构,是类的成员。

  1. 构造方法的结构和普通方法类似,但是和普通方法完全不同两个代码块;
  2. 构造方法也是方法,意味着使用了构造方法,方法会执行,也能完成功能
  3. 构造方法就是一个代码块【就是一个结构 ,构造方法和 字段 方法一样都是一个类中的成员之一】
  4. 构造方法也该存在于类的结构体中

构造方法特点

  1. 每一个类中都至少有一个构造方法;
  2. 如果没有看到(显示的),那么存在一个隐式的无参数的构造方法;
  3. 如果一个类中有显示的构造方法,那么隐式的无参的构造方法就不存在了;

构造方法的作用

作用是:在创建对象的时候,直接给对象成员变量赋值,可以简化代码
注意:
1.只能在创建的时候赋值,不能给已经创建的对象赋值。
2.构造方法一旦通过 new调用,都表示在堆中创建新对象,只要看到new,都表示在堆中创建新对象。

构造方法语法

构造方法声明语法:

1.	构造方法的名字和类名完全一致(包括大小写完全一致)。
2.	没有返回值类型(void也不行)。	 
3. 	构造方法方法体不能返回任何的值(即不能在方法体中return 值)。
4. 	其他的和普通方法类似 ,可以有修饰符(public、protected、private、默认),可以有形参列表。
5.	构造方法必须有方法体。
6.	构造方法不能有任何非访问性质的修饰符修饰,例如 static、final、synchronized、abstract等都不能修饰构造方法。

构造方法使用语法:

new 类名();// 调用无参构造
new 类名(...);// 调用有参构造

设计类语法:

public class 类名 {
小驼峰成员变量 (字段); 
修饰符 Xxx(...){// 构造方法大驼峰类名
	构造方法的方法体
};
修饰符 xxxXxx(...){// 普通方法小驼峰
普通方法 体 
}
}

构造方法注意事项

  1. 普通方法不要和类名一致,行业默认规则。
  2. 普通方法(Method)和构造方法(Constructor)是不同的两种结构。
    2.1 普通方法的调用 : 3种
    2.1.1 类名.方法名(…); --有static修饰的
    2.1.2 对象名.方法名(…); --没有static修饰的
    2.1.3 方法名(…); --同一个类里面都有static或都没有static修饰
    2.2 构造方法的调用 :new 类名(...);(目前为止)

构造方法小结

给对象成员变量赋值方式:

  • 对象名.成员变量 = 值;// 值和成员变量数据类型一致

  • 有参构造: new 类名(...);// 实参和成员变量数据类型一致
    对象取值方式:对象名.成员变量
    注意:
    有参构造不能给已经创建的对象赋值,如果必须给已经创建的对象重新赋值,只能通过:对象名.成员变量 = 值;的方式实现。

有参构造和无参构造使用场景

当对象需要赋值的成员变量 很多 的时候,用:无参构造创建对象,然后用 对象名.成员变量 = 值; 方式赋值。
当对象需要赋值的成员变量 少 的时候,用:有参构造创建对象直接赋值即可。

匿名对象

概念:匿名对象,就是创建的时候没有使用变量接收保存一个对象。
但是匿名对象本质也是一个对象(具体的值)

匿名对象作用:可以节约资源,因为GC【垃圾回收器】会不定时回收匿名对象。

匿名对象使用场景:匿名对象一般用在:只需要使用一次的情况(如:调用一次非static修饰的普通方法、作为方法实参使用)