Java N种内部类 -17天 学习笔记

内部类

内部类就是在一个类中在定义一个类,比如 A类中又定义一个B类,那么B类相对于A类就是它的类部类, A类相对于B类就是他的外部类.

  1. 成员内部类
  2. 静态内部类
  3. 局部内部类
package com.oop.Demo04;
//N种内部类
//成员内部类
public class Outer
{
		private  int a = 10;
		
		public  void eat (){
				System.out.println("哈哈哈哈哈这是外部内的方法");
		}
		//创建一个内部类  
		//如果在class后面加上static 就是静态内部类
		public  class Inner{ //加上public才能在其他地方调用
				//在内部类中创建一个方法
				public  void in (){
						System.out.println("嘿嘿嘿这是内部类的方法");
				  
			//内部类可以访问static,但是static的内部类不能访问外部非static属性
			//所以需要都加上static
				}
				public void getin(){
							eat(); //内部类可以调用外部类的方法不管他私有不私有
				
			
							System.out.println(a);
							//class也可以写在方法中叫做局部内部类
							class Inner {
									//也可以写方法
									public void b () {
											
									}
							}
									
				}
				
		}
		//一个Java中只能有一个 public class,但是可以有需要class
		class a {
				
				public   void main (String[] args){
						
				}
				
				
		}
		
		
}

package com.oop;
import com.oop.Demo04.Outer;

public class Application
{
		public static void main (String[] args){
				
			Outer outer =	new Outer();
			//通过这个外部类来实例化这个内部类
			
			//outer.new Inner();快捷键alt加回车
		Outer.Inner inner = 	outer.new Inner();
		  inner.getin();//获取内部类的方法
			
  
		
		}
}

  1. 匿名内部类
package com.oop.Demo04;

public class Text
{
  	public static void main (String[] args){
  		//正常情况下	
  	Apple apple =		new Apple();
  
  	apple.eat();
  //	但是我们可以通过匿名内部类
  //没有名字初始化类,不用把实列保存在变量中
  new Apple().eat();
  
  //也可以直接new接口,注意接口方法必须重写
   UserService usersevice = new UserService(){
  		//重写
  		public  void hello(){
  	  
  		}
  };//注意有个;号
  
  
  
  	}
  	
}

class Apple {
  	
  	public void eat (){
  			System.out.println("吃完了");
  	}
  	
}

interface UserService{
  	
  	void hello();
}

猜你喜欢

转载自blog.csdn.net/yibai_/article/details/114954515
今日推荐