Java内的多种类
//外部类
public class Person {
public static int age;
// 方法内部类
public Object getHeart() {
class Heart {
public final int age = 13;
int temp = 22;
public final void say() {
System.out.println("hello");
}
public void eat() {
}
public String beat() {
new Person().eat();
return Person.age + "岁的心脏在跳动";
}
}
return new Heart().beat();
// new Heart().temp=12;
temp=33;
// return new Heart();
}
public void eat() {
System.out.println("人会吃东西");
}
// 成员内部类
// 静态内部类
}
获取成员内部类对象实例,方式1:new 外部类.new 内部类
Person.Heart myHeart=new Person().new Heart();
System.out.println(myHeart.beat());
//获取成员内部类对象实例,方式2:外部类对象.new 内部类
myHeart=lili.new Heart();
System.out.println(myHeart.beat());
//获取成员内部类对象实例,方式3:外部类对象.获取方法
myHeart=lili.getHeart();
System.out.println(myHeart.beat());
//获取静态内部类对象实例
Person.Heart myHeart=new Person.Heart();
System.out.println(myHeart.beat());
Person.Heart.say();
public class PersonTest {
//根据传入的不同的人的类型,调用对应的read方法
//方案1:
// public void getRead(Man man){
// man.read();
// }
// public void getRead(Woman woman){
// woman.read();
// }
//方案2:
public void getRead(Person person){
person.read();
}
public static void main(String[] args) {
PersonTest test=new PersonTest();
// Man one=new Man();
// Woman two=new Woman();
// test.getRead(one);
// test.getRead(two);
//方案3:匿名内部类
test.getRead(new Person(){
{
//构造代码块
}
// public static int age=12;
@Override
public void read() {
// TODO Auto-generated method stub
System.out.println("男生喜欢看科幻类书籍");
}
});
test.getRead(new Person(){
@Override
public void read() {
// TODO Auto-generated method stub
System.out.println("女生喜欢读言情小说");
}
});
}
}