Java 内部类

1. 内部类的作用
2. Java成员内部类
3. java 静态内部类
4. java 中的方法内部类
5. Java继承关系

内部类的作用

1. 隐藏,提供更好的封装,不允许同一个包中的其他类访问该类。
2. 内部类可以直接访问外部类的数据,包括私有数据。
3. 内部类所实现的功能使用外部类同样可以实现,但有时使用内部类更加方便。
- 内部类可以分为
1. 成员内部类
2. 静态成员内部类
3. 方法内部类
4. 匿名内部类

public class HelloWorld{ 
        public class inner{ // 定义一个内部类
         public void show(){ // 创建一个内部类方法
             System.out.println("我爱中国");
         }
     }
    public static void main(String[]args){
        // 创建外部类对象
        HelloWorld hello = new HelloWorld();
        // 创建内部类对象
     inner i =  hello.new inner();
     // 调用内部类对象
     i.show();  
    }
}
Java成员内部类
public class Outer {
    // 外部类私有属性
    private String name = "China";
    int age = 20;
    // 成员内部类
    public class inner{
        String name="我爱中国";
        // 内部类中的方法
        public void show(){
            // 在内部类中使用类关键字this,区分内部类变量和外部类相同变量
            System.out.println("外部类中的name:"+Outer.this.name);
            System.out.println("内部类中的name"+name);
            // 在内部类中可以直接访问外部类变量
            System.out.println("外部类中的age:"+age);

        }
    }
    // 测试成员内部类
    public static void main(String[] args){
        // 创建外部类对象
        Outer O = new Outer();
        // 创建内部类对象
        inner inn = O.new  inner();
        // 调用内部类对象的show方法
        inn.show();
    } 
}
java 静态内部类
public class SOuter {
    private int a = 99; //外部私有变量
    static int b = 1;   //外部静态变量
    // 静态内部类
    public static class SInner{
        int b = 2; // 内部类的变量
        public void test(){
            System.out.println("访问外部类的b:"+ SOuter.b); // 通过类名.静态成员名访问外部变量
            System.out.println("访问内部类的b:"+ b);

        }
    }
    public static void main(String [] args){
        SInner si = new SInner();
        si.test();
    }
}

java 中的方法内部类

方法内部类就是定义在外部类的方法中的类,该类只能在方法内部使用,
注意:由于方法内部类不能在外部类的其他地方使用,因此方法类不能使用访问控制修饰符和static。


//外部类
public class HelloWorld {

    private String name = "中国梦";

    // 外部类中的show方法
    public void show() { 
        // 定义方法内部类
        class MInner {
            int score = 83;
            public int getScore() {
                return score + 10;
            }
        }

        // 创建方法内部类的对象
        MInner mi = new MInner();

        // 调用内部类的方法
        mi.getScore();
        int Newscore = mi.getScore();
        System.out.println("姓名:" + name + "\n加分后的成绩:" + Newscore);
    }

    // 测试方法内部类
    public static void main(String[] args) {

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

        // 调用外部类的方法
        mo.show();
    }
}
  • Java继承关系

    class 子类 extends 父类 ,父类当中的变量如果是private,那么将不能继承。
  • Java方法的重写
    如果子类对父类的方法不满意,可以重写父类的方法,调用时优先调用子类方法。
    1. 语言规则
      a. 返回值类型
      b. 方法名
      c. 参数类型及个数
      都要与父类相同,才叫重写。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值