.精华笔记:

1)成员内部类: 应用率不高

1.1)类中套类,外面的称为外部类,里面的称为内部类

1.2)内部类通常只服务于外部类,对外不具备可见性

1.3)内部类对象通常在外部类中创建

1.4)内部类中可以直接访问外部类的成员(包括私有的)

内部类中有一个隐式的引用,指向了创建它的外部类对象

---外部类名.this---------------要记住(传奇老师那用)

2)匿名内部类:----------大大简化代码的操作

2.1)若想创建一个类(派生类)的对象,并且对象只被创建一次,

此时可以设计为匿名内部类

2.2)在匿名内部类中不能修饰外面局部变量的值,

因为该变量在此处会默认为final的----------记住它(传奇才师那用)

2.3)问:内部类有独立的.class吗?

答:有

一.笔记:

1)成员内部类: 应用率不高

1.1)类中套类,外面的称为外部类,里面的称为内部类

1.2)内部类通常只服务于外部类,对外不具备可见性

1.3)内部类对象通常在外部类中创建

1.4)内部类中可以直接访问外部类的成员(包括私有的)

内部类中有一个隐式的引用,指向了创建它的外部类对象

---外部类名.this---------------要记住(传奇老师那用)

```java

public class InnerClassDemo {

public static void main(String[] args) {

Mama m = new Mama();

//Baby b = new Baby(); //编译错误,内部类对外不具备可见性

}

}

class Mama{ //外部类
private String name;
void create(){
Baby b = new Baby();
}
class Baby{ //内部类
void showName(){
System.out.println(name); //简便写法
System.out.println(Mama.this.name); //完整写法
//System.out.println(this.name); //编译错误,this指代当前Baby对象
}
}
}
```

2)匿名内部类:----------大大简化代码的操作

2.1)若想创建一个类(派生类)的对象,并且对象只被创建一次,

此时可以设计为匿名内部类

2.2)在匿名内部类中不能修饰外面局部变量的值,

因为该变量在此处会默认为final的----------记住它(传奇才师那用)

2.3)问:内部类有独立的.class吗?

答:有

```java

public class NstInnerClassDemo {

public static void main(String[] args) {

//1)系统自动创建了Aoo的一个派生类,但是没有名字

//2)为该派生类创建了一个对象,名为o1

// ---new Aoo(){}是在创建Aoo的派生类的对象

//3)大括号中的为派生类的类体

Aoo o1 = new Aoo(){

};

    //1)系统自动创建了Aoo的一个派生类,但是没有名字
//2)为该派生类创建了一个对象,名为o2
//3)大括号中的为派生类的类体
Aoo o2 = new Aoo(){
}; //1)系统自动创建了Boo的一个派生类,但是没有名字
//2)为该派生类创建了一个对象,名为o3
//3)大括号中的为派生类的类体
Boo o3 = new Boo(){
void show(){
System.out.println("showshow");
}
};
o3.show(); int num = 5;
num = 55;
Boo o4 = new Boo(){
void show(){
System.out.println("showshow");
//num = 66; //编译错误,匿名内部类中不能修改外面局部变量的值,
//因为在此处该变量会默认为final的
}
}; }

}

abstract class Boo{

abstract void show();

}

abstract class Aoo{

}

```

二.补充:

1.隐式的引用:

1)this:指代当前对象

2)super:指代当前对象的超类对象

3)外部类名.this:指代当前对象的外部类对象

2.做功能的套路:

1)先写行为/方法:

1.1)若为派生类所特有的行为,则将方法设计在特定的类中

1.2)若为所有派生类所共有的行为,则将方法设计在超类中

2)窗口调用:

2.1)若为定时(自动)发生的,则在定时器中调用

2.2)若为事件触发的,则在侦听器中调用-----------明天第1节课讲

3.调用方法的注意事项:

1)若方法是有返回值的,则必须声明对应类型的变量来接收

2)调用时:

2.1)若与方法在同一个类中,则可以直接调用

2.2)若与方法不在同一个类中,则需要通过引用名打点来调用

2.3)若方法为静态的,则直接通过类名打点来调用

4.错误分类:

1)编译错误----都是由于违反语法规则了

2)异常--------运行时发生,找到at后的链接点击

3)程序的运行结果与你所预期的结果不同------------必须得调错

5.如何调错:

1)------------明天讲

2)打桩: System.out.println(数据);

面向对象ooDay7的更多相关文章

  1. angular2系列教程(六)两种pipe:函数式编程与面向对象编程

    今天,我们要讲的是angualr2的pipe这个知识点. 例子

  2. 一起学 Java(二)面向对象

    一.方法函数 函数也称为方法,就是定义在类中的具有特定功能的一段独立代码.用于定义功能,提高代码的复用性. 函数的特点1> 定义函数可以将功能代码进行封装,便于对该功能进行复用:2> 函数 ...

  3. js面向对象学习 - 对象概念及创建对象

    原文地址:js面向对象学习笔记 一.对象概念 对象是什么?对象是“无序属性的集合,其属性可以包括基本值,对象或者函数”.也就是一组名值对的无序集合. 对象的特性(不可直接访问),也就是属性包含两种,数 ...

  4. 前端开发:面向对象与javascript中的面向对象实现(二)构造函数与原型

    前端开发:面向对象与javascript中的面向对象实现(二)构造函数与原型 前言(题外话): 有人说拖延症是一个绝症,哎呀治不好了.先不说这是一个每个人都多多少少会有的,也不管它究竟对生活有多么大的 ...

  5. .NET 基础 一步步 一幕幕[面向对象之对象和类]

    对象和类 本篇正式进入面向对象的知识点简述: 何为对象,佛曰:一花一世界,一木一浮生,一草一天堂,一叶一如来,一砂一极乐,一方一净土,一笑一尘缘,一念一清静.可见"万物皆对象". ...

  6. 简单分析JavaScript中的面向对象

    初学JavaScript的时候有人会认为JavaScript不是一门面向对象的语言,因为JS是没有类的概念的,但是这并不代表JavaScript没有对象的存在,而且JavaScript也提供了其它的方 ...

  7. Java程序员应该了解的10个面向对象设计原则

    面向对象设计原则: 是OOPS(Object-Oriented Programming System,面向对象的程序设计系统)编程的核心,但大多数Java程序员追逐像Singleton.Decorat ...

  8. JavaScript学习笔记(三)——this、原型、javascript面向对象

    一.this 在JavaScript中this表示:谁调用它,this就是谁. JavaScript是由对象组成的,一切皆为对象,万物皆为对象.this是一个动态的对象,根据调用的对象不同而发生变化, ...

  9. 带你一分钟理解闭包--js面向对象编程

    上一篇<简单粗暴地理解js原型链--js面向对象编程>没想到能攒到这么多赞,实属意外.分享是个好事情,尤其是分享自己的学习感悟.所以网上关于原型链.闭包.作用域等文章多如牛毛,很多文章写得 ...

  10. .NET基础拾遗(2)面向对象的实现和异常的处理基础

    Index : (1)类型语法.内存管理和垃圾回收基础 (2)面向对象的实现和异常的处理基础 (3)字符串.集合与流 (4)委托.事件.反射与特性 (5)多线程开发基础 (6)ADO.NET与数据库开 ...

随机推荐

  1. IIS管理器中远程管理其它web服务器上的IIS站点

    IIS管理器中远程管理其它web服务器上的IIS站点 当生产环境服务器和部署项目过多时, 就需要单独一台机器来统一管理这些项目, 部署配置如下: 环境:项目服务器5台,运维服务器1台 应用:由运维服务 ...

  2. SQL Server性能优化

    源代码文件 1,什么是性能问题? 现有资源没有达到最大吞吐量的前提下,系统不能满足合理的预期表现,则可以定义为有性能问题.性能指标包括:响应时间,吞吐量,可扩展性. 2,初探优化 2.1优化论 一般遇 ...

  3. SAP 删除销售订单行

    DATA: ORDER_HEADER_INX TYPE BAPISDH1X, GT_ORDER_ITEM_IN TYPE STANDARD TABLE OF BAPISDITM, LS_ORDER_I ...

  4. python连接Oracel、postgreSQL、SQLserver、Mysql、mongodb、redis等常用数据库方法汇总

    python对接常用数据库 python有着极其丰富的第三方的库,如此强大的python语言操作各大数据库,不管你使用的关系型数据库是oracle,mysql, sqlserver,还是关系型数据库r ...

  5. 1140. 石子游戏 II (Medium)

    问题描述 1140. 石子游戏 II (Medium) 爱丽丝和鲍勃继续他们的石子游戏.许多堆石子 排成一行,每堆都有正整数颗石子 piles[i].游戏以谁手中的石子最多来决出胜负. 爱丽丝和鲍勃轮 ...

  6. 怎么解决CMD下执行Go出现中文乱码问题?

    目录 1.报错信息如下 2.原因分析 3.解决方法 4.封装处理乱码方法 5.解决乱码完整代码 1.报错信息如下 2.原因分析 因为Go的编码是UTF-8,而CMD的活动页是cp936(GBK),因此 ...

  7. laravel ajax 实现省市区三级联动

    首先将省市区的数据存储到数据库中 sql文件地址:http://m.caomeipi.com/ html <select name="province" style=&quo ...

  8. npm设置和取消代理的方法

    设置代理 npm config set proxy=http://server:port npm config set https-proxy https://server:port // https ...

  9. 根据STM32CubeMX软件创建STM32芯片的Altium Designer原理图库教程-转载

    (24条消息) 根据STM32CubeMX软件创建STM32芯片的Altium Designer原理图库教程_奥比克_阿彦少爷的博客-CSDN博客_stm32原理图库 1所需软件及环境1.STM32C ...

  10. 2022-04-18内部群每日三题-清辉PMP

    1.在为一个有预算限制的项目生成状态报告时,项目经理发现该项目比进度计划落后一周.若要将项目拉回正轨,项目经理应该怎么做? A.重新分配关键路径活动的团队成员. B.向项目发起人要求额外的时间. C. ...