考点一--类和对象
1.类
类是具有某些共同特征的实体的集合,类是一个抽象概念。用程序设计的语言来说,类就是一种抽象的数据类型,写类的目的是根据抽象出来的事物所共有的属性和功能。抽象的关键就在与找到事物的属性和功能,因此在Java中类由两个部分组成,一个称作成员变量,一个称作成员方法,也就是字段和方法。
1.1类的定义
Java定义类的一般形式:
[public] class 类名{
访问修饰符 变量类型 成员变量名 [=默认初始值];
访问修饰符 返回值类型 成员方法名(参数列表){
//成员方法方法体
}
}
1.2对象的创建
对象创建的一般形式:
类的名字 对象名字;//第一种创建法->先声明对象->在为声明的对象分配变量
对象名字 = new 类的名字();
类的名字 对象名字 = new 类的名字();//第二种创建法->声明对象的同时为对象分配变量
2.字段(成员变量)
字段分为两种:实例变量和类变量;类变量使用static关键字修饰,类变量也称为静态变量。类变量为所有该类的对象共享,无论是否有或者有多少个实例,类变量在内存中只有一个。
实例变量与类变量的区别:
1.修饰区别:声明成员变量是,使用static修饰的称作类变量。否则则是实例变量
2.调用不同:类变量既可以使用类名调用也可以使用对象名调用,实例变量使用对象名调用但不能使用类名调用。这是因为类变量是与类相关联的数据变量,类变量是和该类创建的所有对象相关联的变量,改变其中一个对象的类变量同时也改变了其他对象的这个类变量。
3.内存加载不同:当Java程序执行时,类的字节码文件被加载到内存中去,类中的类变量在该类被加载到内存时,就分配了相应的内存空间。但如果该类没有创建对象,类的实例变量就不会被分配内存。
注:1.成员变量的类型可以是Java中任何一种类型,既包括基本类型:整形,字符型,浮点型,布尔类型;引用类型:数组,对象,接口。
2.成员变量整个类中有效,其有效性与其在类中的位置无关。(区别于局部变量)
3.方法
方法也分两种:实例方法和类方法(也称为静态方法,使用static修饰)。实例方法只能通过对象调用执行,对象不存在时,实例方法不能被调用。静态方法可以通过类和实例调用,但静态方法不能访问实例变量,因为静态方法被调用时对象有可能不存在,静态方法无法访问不存在的变量。
3.1方法的定义
方法定义的一般形式:
方法返回类型 方法名(参数列表){
方法体;
}
3.2构造方法
构造方法是类中的一种特殊方法,它是类中默认存在。如果类中没有编写构造方法,系统会默认该类只有一个构造方法而且这个构造方法是没有参数也没有方法体语句的
1.类中的构造方法的名字必须与它的类名相同,而且没有类型。
2.允许一个类中编写若干个构造方法,但必须保证它们的参数不同,参数个数不同或者参数类型不同。->也就是方法的重载
3.3方法的重载
Java中存在两种多态,一种是方法的重载,另一种就是方法的重写;这里我们说明方法的重载。
方法的重载就是一个类中可以拥有多个方法名相同的方法,但这些方法的参数必须不同,或者参数的个数不同,或者参数的类型不同。
3.4this关键字
每个类都有自己的一份备份。每个实例都有一个this变量,该变量代表了实例本身,可以在代码上使用this变量将实例变量和其他变量区别开来。但注意一点,this不可以出现在类方法中
4.访问权限
所谓访问权限就是指对象是否可以通过“.”运算符操作自己的变量或者通过“.”运算符使用类中的方法。访问修饰符包括:private,public,protected,友好型。
4.1私有变量和私有方法
使用private修饰的成员变量和方法称为私有变量和私有方法。
该类外的其他类创建的对象,不能访问该类中的私有变量和私有方法。
4.2共有变量和共有方法
使用public修饰的成员变量和方法称为共有变量和共有方法。
该类外的其他类创建的对象,可以访问该类中的共有变量和共有方法。
4.3受保护的成员变量和方法
使用public修饰的成员变量和方法称为受保护的变量和受保护的方法。
4.4友好变量和方法
不用privete,public,protected修饰符的成员变量和方法被称为友好变量和友好方法。
注:1.不能使用protected和private修饰类。
2.访问修饰符权限从高到低的排列顺序是:public,protected,友好型,private