java内部类的用法

                                      java内部类的用法

java中的内部类是指在一个类中定义另一个类。这样用的好处是什么呢?

我们先来看下内部类的实现代码:

package csdn;

public class Csdn {
	
	public interface Content{
		int content();
	}
	public interface Destination{
		String destination();
	}
	public static class Goods{
		private class Contents implements Content{

			private int value;
			
			private Contents(int s) {
				this.value=s;
				System.out.println("货物的价格"+this.value);
			}
			
			@Override
			public int content() {
				return this.value;
			}
			
		}
		protected class Destinations implements Destination{
			
			private String dest;
			
			private Destinations(String s) {
				this.dest=s;
				System.out.println("货物的目的地"+this.dest);
			}
			
			@Override
			public String destination() {
				return this.dest;
			}
		}
	
		public Contents cont(int a) {
			return new Contents(a);
		}
		public Destinations dest(String s) {
			return new Destinations(s);
		}
		public static void main(String[] args) {

			Goods good=new Goods();
			Content c=good.cont(100);
			Destinations d=good.dest("鞋子");
		}

	}
	
	
}

运行结果:

这是一个简单的demo。

总结下内部类应用的场景和好处:

1:我们把实现功能的类用内部类实现,达到了封装的效果。外部只是调用内部类的方法而已

2:可以用内部类来实现对应类的接口,这样能更好的实现接口的实现,避免了一个类要实现多个接口。降低耦合度。

3:由于内部类可以层层嵌套,所以某种意义上来说实现了类似于c++中的多继承。

4:内部类可以直接访问外部类的变量,包括外部类声明的private变量。

注意事项:

1:由于内部类可以访问外部类,并可以修改。而且内部类与外部类是异步执行的,所以如果内部类要对外部类的变量访问

最好把变量设置成static final private类型。

2:不能直接声明内部类,要先声明外部类在声明内部类。因为内外类类似于继承,也是先有祖先才有孩子。

猜你喜欢

转载自blog.csdn.net/qq_43279637/article/details/84174088