Java 基础 面向对象- 成员内部类/局部内部类/举例Comparable 接口的匿名内部类
2024-08-30 03:49:33
笔记:
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
黄鹂
韩梅梅
最新文章
- Pycharm中使用GitHub
- 不安装Oracle客户端使用PLSQL
- register based 和 stack based虚拟机的区别
- 51单片机ALE引脚的控制(摘录)
- LightSpeed 相关问题处理
- mysql获取日期(将时间戳转换成短日期格式)
- Hibernate 主键策略
- GTEST-ASSERT出错
- [学习笔记]设计模式之Composite
- UVA 10820 - Send a Table 数论 (欧拉函数)
- OLE操作Excel编译错误处理
- hdu 2604Queuing dp+ 矩阵快速幂
- linux显示行数命令
- Jenkins启动、停止脚本
- AJAX数据请求
- text和submit框的border问题
- Python小游戏之 - 飞机大战美女 !
- Ext.net按钮事件中使用Response.Redirect的一个问题
- AWS Add Key Pair to Elastic Beanstalk Instance 给EB实例加密钥
- 【sql注入教程】SQL注入是什么?我们如何去玩转它
热门文章
- 股票PE的应用
- JS通过ActiveX读写ini配置文件
- Django项目-简易博客系统(附源码) --Python Web
- 学习笔记:oracle学习二:oracle11g数据库sql*plus命令之数据库交互、设置运行环境
- windows 下安装ElasticSearch方法
- FishingMaster(HDU-6709)【贪心】
- LeetCode. 3的幂
- mysql 行(记录)的详细操作
- Python操作Redis(转)
- C# EF添加ADO.NET实体数据模型时,产生.Desiger.cs文件为空