![]()
1 //四大内部类的定义区
2 class Text2{
3 //成员内部类定义
4 class San{
5 private int bian1;
6 private int bian2;
7 private int bian3;
8 San(){
9 }
10 San(int bian1,int bian2,int bian3){
11 this.bian1=bian1;
12 this.bian2=bian2;
13 this.bian3=bian3;
14 }
15 public void setBian1(int bian1){
16 this.bian1=bian1;
17 }
18 public void setBian2(int bian2){
19 this.bian2=bian2;
20 }
21 public void setBian3(int bian3){
22 this.bian3=bian3;
23 }
24 public int getBian1(){
25 return bian1;
26 }
27 public int getBian2(){
28 return bian2;
29 }
30 public int getBian3(){
31 return bian3;
32 }
33 public int getZhou(){
34 return getBian1()+getBian2()+getBian3();
35 }
36 }
37 //成员内部类中定义了一个局部内部类
38 class People{
39 private String name;
40 private int age;
41 private String sex;
42 private int height;
43 People(){
44 this.name="你猜";
45 this.age=10000;
46 this.sex="你再猜";
47 this.height=-1000;
48 }
49 People(String name){
50 this();
51 this.name=name;
52 }
53 People(String name,int age){
54 this(name);
55 this.age=age;
56 }
57 People(String name,int age,String sex){
58 this(name,age);
59 this.sex=sex;
60 }
61 People(String name,int age,String sex,int height){
62 this(name,age,sex);
63 this.height=height;
64 }
65 public void setName(String name){
66 this.name=name;
67 }
68 public void setAge(int age){
69 this.age=age;
70 }
71 public void setSex(String sex){
72 this.sex=sex;
73 }
74 public void setHeight(int height){
75 this.height=height;
76 }
77 public String getName(){
78 return name;
79 }
80 public int age(){
81 return age;
82 }
83 public String getSex(){
84 return sex;
85 }
86 public int getHeight(){
87 return height;
88 }
89 public void operate(){
90 final String str1="嘎嘎,我比较懒,但是我确实会算术,因为我会调用,会重载~~~";
91 final String str2="很会说话~~~";
92 final String str3="小子,你发现了没有,我的名字已经改成了";
93 class Inner{
94 public void hello(){
95 System.out.println(People.this.getName()+str2);
96 }
97 public void operate(){
98 System.out.println(str1);
99 }
100 public void setName(){
101 System.out.println(str3+People.this.getName());
102 }
103 }
104 Inner inner=new Inner();
105 inner.hello();
106 inner.operate();
107 inner.setName();
108 }
109 }
110 //静态内部类的定义
111 static class Point{
112 private int x;
113 private int y;
114 Point(){
115 x=-1;
116 y=-1;
117 }
118 Point(int x){
119 this();
120 this.x=x;
121 }
122 Point(int x,int y){
123 this(x);
124 this.y=y;
125 }
126 public void setX(int x){
127 this.x=x;
128 }
129 public void setY(int y){
130 this.y=y;
131 }
132 public int getX(){
133 return x;
134 }
135 public int getY(){
136 return y;
137 }
138 }
139 //一个抽象类的定义,用于客户端匿名内部类来实现抽象方法
140 abstract class ChongZai{
141 public void printl(){
142 System.out.println("这里是重载练习区");
143 }
144 public abstract void print();
145 public abstract void print(String a);
146 public abstract void print(String a,String b);
147 }
148
149 }
150 class Text1{
151 public static void main(String[] args){
152 System.out.println("题目一:");
153 Text2 t2=new Text2();
154 Text2.San san=t2.new San(10,10,10);
155 System.out.println("三角形周长为:"+san.getZhou());
156 System.out.println("题目二:");
157 Text2.People peo=t2.new People("张三",18,"男",180);
158 System.out.println("我的名字叫:"+peo.getName());
159 peo.setName("李四");
160 peo.operate();
161 System.out.println("题目三:");
162 System.out.println("点的坐标是:"+new Text2.Point(3,10).getX()+" "+new Text2.Point(3,10).getY());
163 System.out.println("题目四:");
164 Text2.ChongZai c=t2.new ChongZai(){
165 public void print(){
166 System.out.println("内部类好麻烦~~");
167 }
168 public void print(String a){
169 System.out.println(a);
170 }
171 public void print(String a,String b){
172 System.out.println(a);
173 System.out.println(b);
174 }
175 };
176 c.printl();
177 c.print();
178 c.print("内部类一是成员内部类,二是局部内部类");
179 c.print("内部类三是静态内部类,它就像静态成员一样使用","内部类四就是我,我叫做匿名内部类");
180 }
181 }