笔记:

package 任务135;
/**类的 内部类,
*1.相当于说, 我们可以在类的内部再定义类,
* 2.成员内部类:
* a.是外部类的一个成员,4个修饰符:static, final ,abstract ,可以调用外部类的属性和方法
* b.具有类的特点:
* 3.局部内部类:(定义在类的方法中! )
* 常常使用一个方法,使其成为某个类或接口的对象, 而这个类或者接口在方法内部创建
* 4.或者 new___(){}返回一个匿名的 实现这个类的对象
* 4.重点: 1)创建 2)如何区分调用外部类和内部类的变量; 3)局部内部类的使用
*/

代码:

public class TestInnerClass {
public static void main(String[] args) {
Person.Dog d= new Person.Dog(); //静态的创建对象的方法
//非静态的内部类的对象,需要先创建外部类的对象,通过外部类的对象调用内部类的对象
Person p=new Person();
Person.Bird b=p.new Bird();
b.setName("杜鹃2333");
}
}
class Person{
String name="韩梅梅";
int age;
//成员内部类,非静态的
class Bird{
String name="黄鹂";
int id;
public Bird() {
} public void setName(String name) {
System.out.println(name);
System.out.println(this.name);
System.out.println(Person.this.name);
}
@Override
public String toString() {
return "Bird{" +
"name='" + name + '\'' +
", id=" + id +
'}';
}
} //成员内部类,静态的
static class Dog{ }
public void show(){
System.out.println("我是show 方法");
}
public void method1(){ } } //局部内部类的使用
//常常使用一个方法,使其成为某个类或接口(Comparable)的对象, 而这个类或者接口在方法内部创建
class TestOuterClass{ //返回一个实现这个类的 对象
public Comparable getComparable(){
class MyComparable implements Comparable{
@Override
public int compareTo(Object o) {
return 0;
}
}
return new MyComparable();
}
//返回一个匿名的 实现这个类的对象
public Comparable getComparable2(){
return new Comparable(){
public int compareTo(Object o) {
return 0;
}
};
}
}

输出:

杜鹃2333
黄鹂
韩梅梅

最新文章

  1. Pycharm中使用GitHub
  2. 不安装Oracle客户端使用PLSQL
  3. register based 和 stack based虚拟机的区别
  4. 51单片机ALE引脚的控制(摘录)
  5. LightSpeed 相关问题处理
  6. mysql获取日期(将时间戳转换成短日期格式)
  7. Hibernate 主键策略
  8. GTEST-ASSERT出错
  9. [学习笔记]设计模式之Composite
  10. UVA 10820 - Send a Table 数论 (欧拉函数)
  11. OLE操作Excel编译错误处理
  12. hdu 2604Queuing dp+ 矩阵快速幂
  13. linux显示行数命令
  14. Jenkins启动、停止脚本
  15. AJAX数据请求
  16. text和submit框的border问题
  17. Python小游戏之 - 飞机大战美女 !
  18. Ext.net按钮事件中使用Response.Redirect的一个问题
  19. AWS Add Key Pair to Elastic Beanstalk Instance 给EB实例加密钥
  20. 【sql注入教程】SQL注入是什么?我们如何去玩转它

热门文章

  1. 股票PE的应用
  2. JS通过ActiveX读写ini配置文件
  3. Django项目-简易博客系统(附源码) --Python Web
  4. 学习笔记:oracle学习二:oracle11g数据库sql*plus命令之数据库交互、设置运行环境
  5. windows 下安装ElasticSearch方法
  6. FishingMaster(HDU-6709)【贪心】
  7. LeetCode. 3的幂
  8. mysql 行(记录)的详细操作
  9. Python操作Redis(转)
  10. C# EF添加ADO.NET实体数据模型时,产生.Desiger.cs文件为空