Fork me on GitHub

面向对象之类以及内部类

面向对象之内部类

类及其常见修饰符

  • A:修饰符
    权限修饰符 private 默认的,protected,public
    状态修饰符 static,final
    抽象修饰符 abstract
  • B:类
    权限修饰符 默认的,public
    状态修饰符 final
    抽象修饰符 abstract
  • C:成员变量
    权限修饰符 private 默认的,protected,public
    状态修饰符 static,final
  • D:构造方法
    权限修饰符 private 默认的,protected,public
  • E:成员方法:
    权限修饰符:private,默认的,protected,public
    状态修饰符:static,final
    抽象修饰符:abstract
  • F:除此以外的组合规则:
    • 成员变量:public static final
    • 成员方法:
      • public static
      • public abstract
      • public final
        内部类访问特点
        a:内部类可以直接访问外部类的成员,包括私有。
        b:外部类要访问内部类的成员,必须创建对象。
        外部类名.内部类名 对象名 = 外部类对象.内部类对象;
        案例演示
        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        17
        18
        19
        20
        21
        22
        23
        24
        25
        public class test {

        public static void main(String[] args) {
        // TODO Auto-generated method stub
        Outer.Inner io = new Outer().new Inner();
        io.print();
        }
        }
        class Outer{
        public int num = 10;
        public class Inner{
        public int num = 20;
        public void print() {
        int num = 30;
        System.out.println(num);
        System.out.println(this.num);
        System.out.println(Outer.this.num);
        }
        }
        }

        output:
        30
        20
        10

静态类及其方法访问

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class test2 {

public static void main(String[] args) {
// TODO Auto-generated method stub
Outer.Inner oi = new Outer.Inner();
oi.method();
Outer.Inner2.method2(); //静态方法调用
}
}
class Outer{
static class Inner{
public void method() {
System.out.println("method");
}
}
static class Inner2{
public static void method2() {
System.out.println("method2");
}
}
}

私有类及其访问特点

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class test1 {
public static void main(String[] args) {
Outer oi = new Outer();
oi.print();
}
}
class Outer{
private int num = 30;
private class Inner{
private int num = 20;
private void method() {
System.out.println(num); //20
System.out.println(Outer.this.num); //30
}
}
public void print() {
Inner inner = new Inner();
inner.method();
}
}

匿名类
。。。未完待续

本文标题:面向对象之类以及内部类

文章作者:LiuXiaoKun

发布时间:2018年08月28日 - 08:08

最后更新:2018年09月19日 - 08:09

原始链接:https://LiuZiQiao.github.io/2018/08/28/面向对象之内部类/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

0%