Java学习之内部类

Java学习之内部类,第1张

Java学习之内部类

所谓内部类就是在类的内部声明类 ,这样内部类可以分为 成员内部类 和局部内部类。

下面是学习笔记:

package oop.inner_class;

import oop.inner_class.Person.Legs;


public class InnerClassTest {
	public static void main(String[] args) {
		//创建Legs实例(静态成员内部类):
		Person.Legs legs = new Person.Legs();
		legs.say();
		//创建Brain实例(非静态成员内部类):
//		Person.Brain brain=new Person.Brain(); 错误的
		Person p=new Person();
		Person.Brain brain =p.new Brain();
		brain.show();
	}
}
class Person{
	String name;
	public void say() {
		System.out.println("人可以说话");
	}
	//非静态成员内部类
	 class Brain{
		 String name;
	 public void show() {
		 say();//可以调用外部类的方法
	 }
		public void method(String name) {
			System.out.println(name);//形参
			System.out.println(this.name);//Brain的name(内部类的属性)
			System.out.println(Person.this.name);//Person的name(外部类的属性)
	 
	}
	 
	//静态成员内部类
	static  class Legs{
		String name;
		double width;
		public void say()
		{
			System.out.println("这是大腿");
		}
		public Legs() {
			
		}
	}
	public void method() {
		
		say();
		//局部内部类
		class AA{
			
		}
	}
	
	{	//局部内部类
		class BB{
			
		}
	}
	
	public Person() {
		class CC{
		
			}
		}
	}
}
package oop.inner_class;

public class InnerClassTest1 {
	//开发中很少见
	public void method() {
		
		
		//局部内部类
		class AA{
			
		}
	}
	//返回一个实现了Comparable接口的类的对象
	public Comparable getComparable() {
		
		class MyComparable implements Comparable{
			//创建一个实现了Comparable接口的类:局部内部类
			//方法一:
			@Override
			public int compareTo(Object o) {
				// TODO Auto-generated method stub
				return 0;
			}
			
			}
		return new MyComparable();
			
			
			//方式二
			return new Comparable() {
				@Override
				public int compareTo(Object o) {
					// TODO Auto-generated method stub
					return 0;
				}
			};
			
		
	}
}
package oop.inner_class;

public class InnerClassTest2 {

}

class Person{
	
	public void method() {
		
		final int num=10;
		
		class AA{
			
			public void show(){
				System.out.println(num);
//				num=20;  The final local variable num cannot be assigned, since it is defined in an enclosing type
				//此时的num必须为final类型的
			}
		}
	}
}

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5687514.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存