• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
刚和放飞
博客园    首页    新随笔    联系   管理    订阅  订阅
Java基础复习(一)——内部类

内部类

1.为什么要用内部类?

答:如果一个类只需要被使用一次?专门定义一个类来描述就没必要,此时可以用内部类来实现.

2.什么是内部类?

定义:就是在一个类的内部定义的类叫内部类

3.内部类的分类?

内部类分类成为a.成员内部类 b.匿名内部类 c.局部内部类
成员内部类又分类a.静态内部类 b.非静态内部类

4. 非静态内部类的定义语法

public class 外部类类名{ 访问修鉓符 class 内部类名{
内部类内容
}
//外部类内容
}

a.定义非静态内部类

public class Test{
public class User{
String name;
int age;
public User(){}
public User(String name,int age){this.name=name;this.age = age;}
public void showDetail(){...}
}
//调用方法一:
public void show(){
User user = new User("张三",20);
user.showDetail();
}
//调用方法二
public static void main(String[] args){
Test t = new Test();
Test.User user = t.new User();
user.showDetail();
}
}

b.静态内部类

public class TestStaticClass {
static class User{
String name;
int age;
public User(){}
public User(String name,int age){this.name = name;this.age = age;}
public void showDetail(){
System.out.println("name="+name+" age="+age);
}
}
//调用方法一:在外部类的方法中创建内部类的对象来调用
public void test(String name,int age){
User user = new User(name,age);
user.showDetail();
}

/**
* @param args
*/
public static void main(String[] args) {
//用static修鉓的内部类相当于外部类
//方法二:直接new 外部类.内部类().内部类的方法()
new TestStaticClass.User("dd", 20).showDetail();

//    tsc.test("aa",20);
}

}

c.在方法中定义内部类

public class Test2 {
private String str = "你好";
public void fun(final int num){
class User{
public void print(){
System.out.println("str="+str);
System.out.println("num="+num);    
}    
};
new User().print();
}
/**
* @param args
*/
public static void main(String[] args) {
Test2 t2 = new Test2();
t2.fun(5);
}
}

调用方法是在外部类的方法中new出内部类的对象调用内部类中定义的方法

d.匿名内部类

重写内部类的方法

a1.定义一个接口或抽象类

public static void method1(){
//匿名内部类创建接口的对象
Animal dog = new Animal() {    
@Override
public void run() {
System.out.println("四条腿跑");

}    
@Override
public void eat() {
System.out.println("狗吃狗粮");    
}
};
dog.run();
}

 

posted on 2020-04-03 00:26  刚和放飞  阅读(141)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3