A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 风中的消逝 于 2018-4-23 15:22 编辑

【石家庄校区】就业班_JavaSE_day04_package_权限修饰_内部类

一 包
     cn.itcast  这是二个包   包就是文件夹  
     同一个包下的类不能重名,与window系统下同一个目录下文件不能重名类似。
     window下不区分大小写。student.java 和 Student.java都会导致重名。

      包的特点:
      放在代码第一行;
      同一个包下的类 直接访问
      java.lang包默认已经帮我们导入了。所以可以直接使用。

      不同包之间类的访问方法:
      1.使用的类的全名(包名.类名)
      2.导包  import java.util.* 表示导入java.util包下所有的类,但不包括java.util.子包下的类。

二 权限修饰符
    以后所有的类都定义为public 并且一个java文件中只有一个class
    以后所有成员变量都定义为private
    以后所有成员方法都定义为public
    以后所有构造方法都定义为public 如果不想创建对象,则定义为private
    修饰符总结: 4中权限修饰符 + static + final + abstract

三 内部类  (内部类能访问外部类成员,外部类成员不能访问内部类成员。)

    成员内部类
        定义在方法外,类体中。成员内部类又分为非静态的和静态的。
        1 非静态内部类申明:
        Outer.Inner in = new Outer().new Inner();
        前面省略了包名,其实前面定义的是Inner的完整类名。
        Outer.this  表示对外部类Outer的引用。
        非静态内部类可以访问外部类的所有成员,包括静态和非静态。
        2 静态内部类申明:
        Outer.Inner in = new Outer.Inner();
        静态内部类的成员如果是静态的,可以直接通过Outer.Inner.成员 来访问。
        静态内部类中只能访问外部类中的静态成员。
        成员内部类可以用那些修饰符:
        4(权限修饰符)+3(static/abstract/final)7种修饰符都可以。

    局部内部类
        1.定义在方法中
        2.可以直接访问外部类成员,也可以访问所在方法体中的局部变量,但局部变量必须是final修饰的。

    匿名内部类
            1.定义在方法中或者方法的形参
            2. 格式如下 相当于创建了一个类的子类或者接口的实现类对象。
            new Inner() {
                        @Override
                        public void method() {
                                System.out.println("匿名内部类中的方法");
                        }
                }.method();;
               
                Inner in = new Inner(){ // 多态
                        @Override
                        public void method() {
                                System.out.println("匿名内部类中的方法");
                        }
                };

    注意事项
    1.为什么内部类能访问外部类的成员,因为内部类持有外部类的引用。外部类名.this
    2.内部类可以被static修饰,但是只能访问外部类staitc的成员
    3.如果内部类被staitc修饰,内部类成员也被static修饰,可以不创建外部类对象,直接调用。
        Inner.Outer.show();
    4.内部类可以直接访问外部类中的成员,包括私有成员,而外部类要访问内部类中的成员必须要先创建
       内部类对象。


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马