1、面向对象三大特性:封装、继承、多态。
封装:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。
封装步骤:修改属性的可见性(设为private);
创建getter/setter方法;
在getter/setter方法中加入属性控制语句。
例:
private float screen;
public float getScreen(){
return screen;
}
public float setScreen(float newScreen){
screen = newScreen;
}
phone.setScreen(6.0f);
2、使用包管理java中的类
定义包:package 包名
.”间隔开。
系统中的包:
java.(功能).(类)
java.lang.(类) 包含java语言基础的类
java.util.(类) 包含java语言中各种工具类
java.io.(类) 包含输入、输出相关功能的类
可通过import关键字,在某个文件使用其他文件中的类
包的命名规范是全小写字母拼写。
3、访问修饰符:
可修饰属性和方法的访问范围
本类 同包 子类 其它
private √
√ √
√ √ √
√ √ √ √
4、this关键字
.属性 this.方法
5、内部类(Inner Class)
定义在另一个类里面的类。包含内部类的类被称为外部类。
作用:(1)更好的封装;
(2)内部类的方法可直接访问外部类的所有数据,包括私有的数据;
(3)内部类所实现的功能使用外部类同样可以实现。
种类:成员内部类、静态内部类、方法内部类、匿名内部类
6、成员内部类
public class Outer{ //外部类
private int a = 99; //外部类私有属性
public class Inner{
int b = 2; //内部类成员属性
public void test(){
System.out.println("访问外部类中的a"+a);
System.out.println("访问内部类中的b"+b);
}
}
public static void main(String[ ] arges){
Outer o = new Outer(); //创建外部类对象
Inner i = o.new Inner(); //用外部类对象创建内部类对象
i.test(); //调用内部类对象的test方法。
}
}
test()方法可直接访问Outer类中的数据,而不受访问控制符的影响。定义成员内部类,必须用外部类对象创建内部类对象,即:
.new 内部类();
外部类不能直接使用内部类的成员和方法,内部类默认访问自己的成员变量或方法,若要访问外部类的成员变量,可用this关键字。
7、静态内部类——static修饰的内部类
.成员 方式访问;
.静态成员” 访问外部类的静态成员;
创建静态内部类的对象时,不需要外部类的对象,可直接创建:
内部类 对象名 = new 内部类();
8、方法内部类
内部类定义在外部类的方法中,方法内部类只在该方法的内部可见,即只在该方法内可以使用。
public class MOuter{ //外部类
public void show(){ //外部类中的方法
final int a = 24; //常量
int b = 13; //变量
class MInner{ //方法内部类
int c = 2; //内部类中的变量
public void print(){
System.out.println("访问外部类的方法中的常量a"+a);
System.out.println("访问内部类中的变量c"+c);
}
}
MInner mi = new MInner(); //创建方法内部类的对象
.print(); //调用内部类的方法
}
//测试方法内部类
public static void main(String[ ] args){
MOuter mo = new MOuter(); //创建外部类的对象
.show(); //调用外部类的方法
}
}
由于方法内部类不能在外部类的方法以外的地方使用,因此方法内部类不能控制符和static修饰符。