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修饰符。