java学习笔记(6) ---内部类和权限修饰符

内部类

1、什么是内部类及作用?

定义:定义在一个类里面的类就是内部类。
作用:可以提供更好的封装性, 内部类有更多权限修饰符 , 封装性有更多的控制。可以体现出组件的思想。

2、内部类的分类

(1)静态内部类 (2)成员内部类(3)局部内部类(4)匿名内部类。(重点)

(1)静态内部类:有static修饰,属于外部类本身,会加载一次。
 类有的成分它都有,静态内部类属于外部类本身,只会加载一次。 所以它的特点与外部类是完全一样的,只是位置在别人里面而已。
静态内部类的访问格式:
        外部类名称.内部类名称
静态内部类创建对象的格式:
        外部类名称.内部类名称 对象名称 = new 外部类名称.内部类构造器;

(2)成员内部类:无static修饰的内部类,属于外部类的每个对象的,跟着对象一起加载的。
实例内部类的成分特点:
        实例内部类中不能定义静态成员,其他都可以定义。
        可以定义常量。
实例内部类的访问格式:
        外部类名称.内部类名称。
创建对象的格式:
        外部类名称.内部类名称 对象名称 = new 外部类构造器.new 内部构造器;

(3)局部内部类:定义在方法中,在构造器中,代码块中,for循环中定义的内部类
局部内部类中的成分特点:
        只能定义实例成员,不能定义静态成员
        可以定义常量的。

(4)匿名内部类:一个没有名字的局部内部类。目的:简化代码,也是开发中常用的形式。
匿名内部类的格式:
        new 类名|抽象类|接口(形参){
            方法重写。
        }
     匿名内部类的特点:
         1.匿名内部类是一个没有名字的内部类。
         2.匿名内部类一旦写出来,就会立即创建一个匿名内部类的对象返回。
         3.匿名内部类的对象的类型相当于是当前new的那个的类型的子类类型。
 

public class Anonymity {
    public static void main(String[] args) {
        Animal a = new Animal(){
            @Override
            public void run() {
                System.out.println("猫跑的贼溜~~");
            }
        };
        a.run();
        a.go();

        Animal a1 = new Animal() {
            @Override
            public void run() {
                System.out.println("狗跑的贼快~~~");
            }
        };
        a1.run();
        a.go();


    }
}
abstract class Animal{
    public abstract void run();

    public void go(){
        System.out.println("开始go~~~");
    }
}

包和权限修饰符

包:
         分门别类的管理各种不同的技术。
         企业的代码必须用包区分。便于管理技术,扩展技术,阅读技术。
定义包的格式:package 包名; 必须放在类名的最上面。一般工具已经帮我们做好了。
包名的命名规范
         一般是公司域名的倒写+技术名称:
         http://www.itheima.com => com.itheima.技术名称
         包名建议全部用英文,多个单词用”.“连接,必须是合法标识符,不能用关键字
注意:
        相同包下的类可以直接访问。
        不同包下的类必须导包,才可以使用!
         导包格式:import 包名.类名;

权限修饰符

private缺省protectedpublic
本类中
本包下其他类中×
其他包下的类中×××
其他包下的子类中××

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值