类的定义格式:
class 类名{
//成员变量【Field】是对一个类的属性的描述 即变量
//成员方法【Method】 是对一个类的行为的描述,用方法封装
}
访问类中的变量方法:
static修饰的成员变量和成员方法:类名.变量名 访问类中的方法: 类名. 方法名(参数);
如果不是static关键字修饰的,需要访问时就需要实例化一个对象,使用对象名.方法名活着对象名. 变量名访问
我们通过类来实例化一个对象,使用关键字new
格式:类名 变量名 = new 类名();注意:后面的这个【 类名()】实际上是调用了一个类中默认的构造方法
访问对象中的变量和方法格式: 对象名. 变量名 对象名. 方法名(参数);
类和对象的区别:类其实是对象的抽象话描述,而对象则是一个具体的事物。
局部变量和成员变量的区别:
局部变量 | 成员变量 | |
定义的位置不同 | 定义在类的方法中,只在方法中有效,方法外无效。 | 定义在类中,用来描述类的属性。 |
内存中的位置不同 | 存储在栈内存的方法中 | 在内存的对象中 |
声明周期不同 | 调用方法才会出现在栈中,随着方法的弹栈而消失 | 随着对象的出现而出现在堆内存中,随对象的消失而消失 |
初始化不同 | 局部变量没有默认的初始值,需手动赋值 | 成员变量在堆内存中,所以有默认值 |
abstract
abstract 修饰的方法是抽象方法,他没有方法体。
abstract 修饰的方法必须定义在abstract的类中,即如果一个类中有abstract修饰的方法,那么该类就必须要用abstract修饰
abstract修饰的类是一个抽象类,他只能是父类,因为抽象类没有办法实例化一个对象,这是因为抽象类中的抽象方法没有方法体,他的具体的实现需要该类的继承类对该方法进行重写
this 关键字
this关键字是指向当前的方法的类对象本身
this 关键字可以用在方法中解决就近原则的问题,处理方法中处理成员变量和局部变量命 名冲突,使用this.成员变量名字
this关键字可以调用其构造方法,格式: this(实际需要传入的参数)
这里需要我们注意调用时需要放在方法的第一行,而且两个构造方法不能互相调用,这样会造成死循环
继承
使用关键字extends 格式:class A extends B
注意:只能是单继承,即类A只能有B一个直接父类,不能在zhijei 继承其他的类。但是B类可被其他类继承
通过继承子类可以使用从父类继承而来的【非私有化的】成员变量和成员方法,不能调用父类私有化的方法和变量
在继承的关系下,存在这子类可以重写父类方法的情况
方法的重写发生在子类继承父类的情况之下,方法的重写要求方法的名称要保持一致,方法体不一致,这个时候我么可使用zhujw@Override 开启严格重写格式检查
在继承的情况下还会有子类与父类中的方法和变量重名的情况,为了调用父类中的变量活着方法,我么可以使用super关键字
super关键字时指向父类中的方法和变量 格式:super.变量名或者 super. 方法名
我们还可以使super关键字直接调用父类的构造方法,格式super(实际需要传入的参数)
注意super关键字的调用构造方法不能和this关键字调用构造方法一起使用
super关键字调用构造方法只能在第一行