面向对象之内部类

类及其常见修饰符

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:外部类要访问内部类的成员,必须创建对象。
  •    外部类名.内部类名 对象名 = 外部类对象.内部类对象;

案例演示

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
  • 静态类及其方法访问
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");
		}
	}
}

  • 私有类及其访问特点
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();
	}
}

匿名类

。。。未完待续

猜你喜欢

转载自blog.csdn.net/qq_39478237/article/details/81155225