构造函数
特点:
1.函数名与类名相同
2.不用定义返回值类型
3.没有具体的返回值
作用:
给对象进行初始化
(1)创建对象都必须要通过初始化,创建对象都必须要通过构造函数初始化
(2)一个类中如果没有定义过构造函数,那么该类中会有一个默认的空参数构造函数。
如果在类中定义了指定的构造函数,那么类中的默认构造函数就没有了。
注意:
1.默认构造函数的特点
2.多个构造函数是以重载的方式出现
一般函数和构造函数有什么区别呢?
构造函数:对象创建时,就会调用与之对应的 构造函数,对对象进行初始化。
一般函数:对象创建后需要函数功能时才会 调用。
构造函数:对象创建时,会调用,只调用一 次。
一般函数:对象创建后,可以被调用多次。
构造方法的重载
定义:
同一个类中的多个方法可以有相同的名字,但参数列表不同(包括参数的类型,参数的个数,参数的顺序,只要有一个不同就叫参数列表不同)。
this关键字
1.当成员变量和局部变量重名,可以用关键字this来区分。
this.name=name;
哪个对象调用了this所在的函数,this就代表那个对象
2.可以用于在构造函数中调用其他构造函数
注意:只能定义在构造函数的第一行,因为 初始化的动作要先执行。
static 关键字
用于修饰成员 (成员变量和成员函数)
被修饰后的成员具备以下特点:
随着类的加载而加载
优先于对象存在
被所有对象所共享
可以直接被类名调用
使用注意
静态方法只能访问静态成员
静态方法中不可以写this,super关键字
主函数是静态的
static的特点
1.是一个修饰符,用于修饰成员。
2. 修饰的成员,被所以的对象所共享
3.优先于对象存在,因为static的成员,随着 类的加载就已经存在了
4.修饰的成员多了一种调用方式,就可以直 接被类名所调用。 类名.静态成员
5.修饰的数据是共享数据,对象中的存储的是特有数据。
成员变量与静态变量的区别
1. 两个变量的生命周期不同
成员变量随着对象的创建而存在,随着对象的被回收而释放。
静态变量随着类的加载而存在,随着类的消失而消失
2.调用方式不同
成员变量只能被对象调用。
静态变量可以被对象调用,也可以被类名调用。
3.别名不同
成员变量也称为实例变量。
静态变量也称为类变量。
4.数据存储位置不同
成员变量数据存储在堆内存的对象中,
所以也叫对象的特有数据。
静态变量数据存储在方法区(共享数据
区)的静态区,所以也叫对象的共享数据。
静态使用的注意事项:
1.静态方法只能访问静态成员。(非静态既可以访问静态,又可以访问非静态)
2.静态方法中不可以使用this或者surper关键字。
3. 主函数是静态的。
主函数特殊之处
1.格式是固定的。
2.被Jvm所识别和调用。
public: 因为权限必须是最大的。
static:不需要对象的,直接用主函数所属类 名调用即可。
void:主函数没有具体的返回值。
main:函数名,不是关键字。只是一个Jvm识 别的固定名字。
String[ ]args:这是主函数的参数列表,是一
个数组类型的参数,而且元素 都是字符串类型。
接口与抽象的区别
接口和抽象类的概念不一样。接口是对动作的抽象,抽象类是对根源的抽象。
抽象类表示的是,这个对象是什么。接口表示的是,这个对象能做什么。比如,男人,女人,这两个类(如果是类的话……),他们的抽象类是人。说明,他们都是人。
人可以吃东西,狗也可以吃东西,你可以把“吃东西”定义成一个接口,然后让这些类去实现它.
所以,在高级语言上,一个类只能继承一个类(抽象类)(正如人不可能同时是生物和非生物),但是可以实现多个接口(吃饭接口、走路接口)。
第一点. 接口是抽象类的变体,接口中所有的方法都是抽象的。而抽象类是声明方法的存在而不去实现它的类。
第二点. 接口可以多继承,抽象类不行
第三点. 接口定义方法,不能实现,而抽象类可以实现部分方法。
第四点. 接口中基本数据类型为static 而抽类象不是的。
当你关注一个事物的本质的时候,用抽象类;当你关注一个操作的时候,用接口。
接口和抽象类都是继承树的上层,他们的共同点如下:
1)都是上层的抽象层。
2)都不能被实例化
3)都能包含抽象的方法,这些抽象的方法用于描述类具备的功能,但是不比提供具体的实现。
接口
1.接口不能用于实例化对象。
2.接口没有构造方法。
3.接口中所有的方法必须是抽象方法。
4.接口不能包含成员变量,除了 static 和 final 变量。
5.接口不是被类继承了,而是要被类实现。
6.接口支持多继承。