栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java学习之内部类

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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类型的
			}
		}
	}
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/686986.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号