7.8

发布时间 2023-07-08 19:36:03作者: new菜鸟

 

3、类和对象的定义与使用
定义类

权限修饰符 class 类名{
//属性
权限修饰符 属性类型 属性名称;
//方法
权限修饰符 方法名(形参){
方法体;

类定义完成之后,无法直接使用。如果要使用,必须依靠对象,那么由于类属于引用数据类型,所以对象的产生格式有如下两种:
1、声明的同时实例化对象
类名称 对象名称 = new 类名称 () ;
2、先声明,再实例化对象
类名称 对象名称 = null ;
对象名称 = new 类名称 () ;

当一个实例化对象产生之后,可以按照如下的方式进行类的操作:
对象.属性:表示调用类之中的属性;
对象.方法():表示调用类中的方法。

## 构造方法:
1、使用new+构造方法 来创建一个新对象
2、构造方法是定义在Java类中的一个用来初始化对象的方法,构造方法与类名同名且没有返回值
3、当没有指定构造方法时,系统会自动添加无参构造方法。
4、当有指定构造方法,无论是有参/无参的构造方法,都不会自动添加无参构造方法。
5、构造方法的重载:方法名相同,但参数不同的多个构造方法,调用时会自动根据不同参数选择相应的方法。

4、对象调用成员方法
方式:对象.方法名 调用

5、权限修饰符
Java中四种权限修饰符:public(公共的)、protected(受保护的)、default(默认的(也可以不写))、private(私有的)

 

1、what
将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问

2、why
● 1:通过隐藏对象的属性来保护对象内部的状态(隐藏信息、实现细节)。
● 2:可以对成员变量进行更精确的控制,容易保证类内部数据间的一致性,从而提高软件的可靠性。
● 3:提高对象数据的安全性,提高了代码的可用性和可维护性。

3、how
Java中通过将数据声明为私有的(private),再提供公共的(public)方法:getXxx()和setXxx()实现对该属性的操作。


三、继承
1、继承的定义
● 当我们定义有很多部分具有相同属性和方法的类时,如果每一个类都定义这些相同属性和方法,容易造成代码冗余,为了允许使用现有类的功能,并且无需改动原有类的情况下,引入继承的概念。
● 允许重用的现有类成为父类(或基类,超类),由父类派生出来的类称为子类(或派生类)。
● 继承就是子类继承父类的特征和行为,使得子类对象具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。

2、继承的使用
public class Animal {
private String name;
private int age;

public Animal(String name , int age){
this.name = name;
this.age = age;
}
}

public class Dog extends Animal { //实现继承的关键字 extends
private String color;

public Dog(String name,int age,String color){
super(name,age); //调用父类的构造方法。
this.color = color;
}
}

在这个例子中Dog类继承了Animal类,所以Dog类继承了Animal类里面的属性name 和 age。就不会造成重复定义,和代码冗余。

super关键字
● 1、用于从子类访问父类的成员。
● 2、子类调用父类的构造方法super(),super()只能在派生类的构造方法中调用,位于方法首行。
● 3、调用父类已被重写的方法。
● 4、访问父类的数据成员 super.成员变量 或 super.成员方法。

3、继承的特征
传递性。若类C继承类B,类B继承类A,则类C既有从类B哪里继承的属性和方法,也有从类A那里继承的属性和方法,还可以有自己新定义的属性和方法。
单继承。Java只支持单重继承,而通过接口来实现多继承。
4、方法重写
1)什么是方法的重写:

如果子类对继承父类的方法不满意,是可以重写父类继承的方法的,当调用方法时会优先调用子类的方法。
(2)语法规则:
● 子类中该方法的名字、返回值、参数列表和父类的方法都应该相同。
● 子类中的重写方法访问权限不能比父类小。
● 若父类是抽象(abstract)类,则子类必须重写父类的抽象方法,否则子类还是抽象类。
● 父类分final方法不能被重写。

四、多态
1、多态的概念
同一个行为具有多种不同的表现形式或形态能力,允许不同类的对象对同一消息做出相应。即同一消息可以根据发送对象的不同采用多种不同的行为方式。

2、多态的前提条件
要有继承
要有方法的重写
要有父类引用指向子类对象

3、多态的分类

静多态(静态绑定,编译期多态)
静多态也称编译时多态,就是常说的方法重载。根据形参的个数或类型的不同,从而调用不同的方法,在编译期间就已经确定要调用的方法。
动多态(动态绑定,运行时多态)
父类引用指向子类对象,父类引用调用的方法根据实际 new 出来的对象调用实际对象的方法。

作用:判断一个引用类型变量所指向的对象是否是一个类(或接口、抽象类、父类)的实例。
返回值为Boolean类型。