Java 基础 面向对象- 成员内部类/局部内部类/举例Comparable 接口的匿名内部类
笔记:
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
黄鹂
韩梅梅
Java 基础 面向对象- 成员内部类/局部内部类/举例Comparable 接口的匿名内部类的更多相关文章
- Java 基础 面向对象之关键字内部类代码块修饰符
final final概念 继承的出现提高了代码的复用性,并方便开发.但随之也有问题,有些类在描述完之后,不想被继承,或者有些类中的部分方法功能是固定的,不想让子类重写.可是当子类继承了这些特殊类之后 ...
- Java基础进阶:内部类lambda重点摘要,详细讲解成员内部类,局部内部类,匿名内部类,Lambda表达式,Lambda表达式和匿名内部类的区别,附重难点,代码实现源码,课堂笔记,课后扩展及答案
内部类lambda重点摘要 内部类特点: 内部类可以直接访问外部类,包括私有 外部类访问内部类必须创建对象 创建内部对象格式: 外部类.内部类 对象名=new外部类().new内部类(); 静态内部类 ...
- Java基础-面向对象第三大特性之多态(polymorphism)
Java基础-面向对象第三大特性之多态(polymorphism) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.多态概述 多态是继封装,继承之后,面向对象的第三大特性,多态的 ...
- Java基础-面向对象第一特性之封装(Encapsulation)
Java基础-面向对象第一特性之封装(Encapsulation) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.理解什么是面向过程和面向对象 面向过程与面向对象都是我们编程中 ...
- 第二十七节:Java基础面向对象-静态,单例模式,继承详情知识点
前言 Java基础面向对象-静态,单例模式,继承详情知识点.静态-static关键字,static变量,静态代码块,代码块(不加静态),对象创建过程,单例模式,继承. 静态-static关键字 // ...
- “全栈2019”Java第一百章:局部内部类可以实现接口吗?
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- java基础面向对象之类与对象
java基础面向对象之类与对象 2017-01-14 1.面向对象的基本概念 以一种组建化的形式进行代码设计 1)在面向对象程序设计中包含有如下几种特性 •封装性:保护内部结构的安全性 •继承性:在已 ...
- Java基础-面向对象第二特征之继承(Inheritance)
Java基础-面向对象第二特征之继承(Inheritance) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.继承的概述 在现实生活中,继承一般指的是子女继承父辈的财产.在程序 ...
- 夯实Java基础(十一)——内部类
1.内部类的概念 内部类顾名思义:将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类.对于很多Java初学者来说,内部类学起来真的是一头雾水,根本理解不清楚是个什么东西,包括我自己(我太菜 ...
随机推荐
- 【数据库开发】Redis消息通知
消息通知 任务队列 使用任务队列的好处 松耦合.生产者和消费者无需知道彼此的实现细节,只需要约定好任务的描述格式.这使得生产者和消费者可以由不同的团队使用不同的编程语言编写 易于扩展.消费者可以有多个 ...
- 【计算机视觉】Object Proposal之BING理解
发现: 本论文主要有两大亮点.第一个亮点是发现了在固定窗口的大小下,物体与背景的梯度模式有所不同.如图1所示.图1(a)中绿框代表背景,红框代表物体.如果把这些框都resize成固定大小,比如8X8, ...
- 最新 二三四五java校招面经 (含整理过的面试题大全)
从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.二三四五等10家互联网公司的校招Offer,因为某些自身原因最终选择了二三四五.6.7月主要是做系统复习.项目复盘.Leet ...
- vue 强制组件重新渲染
参考链接:https://blog.csdn.net/zyx1303031629/article/details/86656785
- python线程信号量semaphore(33)
通过前面对 线程互斥锁lock / 线程事件event / 线程条件变量condition / 线程定时器timer 的讲解,相信你对线程threading模块已经有了一定的了解,同时执行多个线程的 ...
- LeetCode. 颠倒二进制位
题目要求: 颠倒给定的 32 位无符号整数的二进制位. 示例: 输入: 00000010100101000001111010011100 输出: 001110010111100000101001010 ...
- prometheus+grafana监控mysql
prometheus+grafana监控mysql 1.安装配置MySQL官方的 Yum Repository(有mysql只需设置监控账号即可) [root@localhost ~]# wget - ...
- 解决 Linux grep 不高亮显示
今天偶然发现一个问题,在 grep 日志的过程中,搜出来一大坨但是被 grep 的那一段未高亮显示,属实有些难受,高亮显示是 Linux 的高亮本来就是 Linux 的功能,与连接工具(我用的 xsh ...
- 谷歌(google)广告尺寸大小列表
在平时做网页模板时,我们需要计算Google AdSense 的尺寸,以确保它能和页面完美的结合,提高AdSense的点击率,进台后看又很麻烦,下面整理了Google 广告的各种尺寸,跟大家分享一下. ...
- 十一、微信小程序-var、let、const用法详解
let命令 基本用法 ES6 新增了let命令,用来声明变量.它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效. { let a = 10; var b = 1; } a // ...