Java入门 二、封装

来源:互联网 发布:人工智能导论 编辑:程序博客网 时间:2024/05/23 17:32

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           √

    默认                         

    protected                           

    public              √                            

4、this关键字

        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 外部类().成员    ​方式访问;

    ​    ​外部类的静态成员内内部类的成员名称相同,可通过 “类名.静态成员” 访问外部类的静态成员;

    ​    ​创建静态内部类的对象时,不需要外部类的对象,可直接创建:

    ​       ​    ​ ​内部类 对象名 = 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();    ​//创建方法内部类的对象

    ​    ​mi.print();    ​//调用内部类的方法

    ​}

    ​//测试方法内部类

    ​public static void main(String[ ] args){

        ​MOuter mo = new MOuter();    ​//创建外部类的对象

    ​    ​mo.show();​    ​//调用外部类的方法

    ​}

}

    ​    ​由于方法内部类不能在外部类的方法以外的地方使用,因此方法内部类不能控制符和static修饰符。

0 0
原创粉丝点击