java从小白到老白⑤——传智播客27版笔记
- 今天主要说些内部类的相关基础知识,如果能做出下面这个小题目,再下面的内容不看也罢(面试题答案在最后)
内部类面试题:补全下列代码,实现目标输出,其中描述阶段的数字只能调用已有变量,不能用其他方式public class TestInner1 {
public static void main(String[] args) {
//调用
}
} class Programmer{
private int n = 1;
class Bald{
private int n = 2; public void expert() {
int n = 3;
System.out.println("level " + *** + ":programmer");
System.out.println("level " + *** + ":bald");
System.out.println("level " + *** + ":expert");
}
}
}
输出目标:
level 1:programmer
level 2:bald
level 3:expert
- 内部类(一般内部类是为了增强安全性,不易被外界访问)
1.访问特点:
①内部类可直接访问外部类的成员,包括私有
②而外部类想要访问内部类的成员,需要先创建对象
2.(1)成员内部类
①直接访问内部类:外部类名.内部类名 对象名 = new 外部类名().new 内部类名();
eg:
package javaBasic;
public class TestInner {
public static void main(String[] args) {
new Stripling().new Diligent().need();
}
}
class Stripling{
class Diligent{
public void need() {
System.out.println("Make a great effort to pass CET-6 at one time!");
}
}
}
②成员内部类被静态修饰后的访问方式是:外部类名.内部类名 对象名 = new 外部类名.内部类名();
eg:
package javaBasic;
public class TestInner {
public static void main(String[] args) {
new Stripling. Diligent().need1();
}
}
class Stripling{
private int num1 = 1;//static的内部类Diligent不能访问外部类的非static成员
private static int num2 = 2;
public static class Diligent{
public void need() {
System.out.println(num2 + "\nMake a great effort to pass CET-6 at one time!");
}
public static void need1() {
System.out.println(num2 + "1\nMake a great effort to pass CET-6 at one time!");
}
}
}
3.局部内部类
①局部内部类访问局部变量必须用final修饰
a.局部变量是随着方法的调用而调用,随着调用完毕而消失
b.相比之下,堆内存的内容不会立即消失(堆内存随着垃圾回收器的作用而消失)
c.综合a、b,我们需要用final修饰,变量变常量——内存中存储的是对应的数据值
4.匿名内部类:继承了相应的类或者实现了相应接口的子类匿名对象,功能上可理解为内部类的简化写法
①前提:存在一个类(可是具体类也可是抽象类)或接口
②格式:new 类名或者接口名(){
重写方法;
}
- 顺序问题:package>import>class
- 修饰符:
①权限修饰符:private,default,protected,public
②状态修饰符:static,final
③抽象修饰符:abstract
(1)类:
①权限修饰符:private,default,protected,public
②状态修饰符:final(因为内部类可以看做外部类的成员,则内部类可以用static修饰)
③抽象修饰符:abstract
(2)成员变量:
①权限修饰符:private,default,protected,public
②状态修饰符:static,final
(3)构造方法:
①权限修饰符:private,default,protected,public
(4)成员方法:
①权限修饰符:private,default,protected,public
②状态修饰符:static,final
③抽象修饰符:abstract
(5)the other组合方式:
成员变量:public static final//静态成员常量
成员方法:public static
public final
public abstract
- 面试题答案:
package javaBasic; public class TestInner1 {
public static void main(String[] args) {
new Programmer().new Bald().expert();
}
} class Programmer{
private int n = 1;
class Bald{
private int n = 2; public void expert() {
int n = 3;
System.out.println("level " + Programmer.this.n + ":programmer");//通过外部类名限制this范围
System.out.println("level " + this.n + ":bald");
System.out.println("level " + n + ":expert");
}
}
}
java从小白到老白⑤——传智播客27版笔记的更多相关文章
- 传智播客JavaWeb day02笔记
2015年1月21日 今天的主要内容:介绍了几款常用Javaweb服务器,重点介绍了tomcat以及tomcat的安装和怎么样检测安装成功 1.JavaWeb常见服务器 Tomcat(免费但是只支持部 ...
- 传智播客Springmvc_mybatis学习笔记
文件地址:https://download.csdn.net/download/qq_26078953/10614459
- 揭秘传智播客班级毕业薪资超7k的内幕系列 之三 ----国企慕名而来,将未毕业学员“抢走”,传智播客又一次定义“被就业”
前面文章提及Java六期学员张同学提前就业某国企,入职薪资6.3k,各种福利齐全.作为班级首位就业同学,他的就业也成为了班级其它同学就业的风向标.但事实上张同学的就业属于"被就业" ...
- 成都传智播客java就业班和基础班
传智播客成都Java培训,带你走进Java的世界... 我们有咨询的教育团队,一流的名师指导: 我们是重视基础理论建设,强化高端应用技能: 我们有四大JavaEE项目,海量Android项目: 我们是 ...
- 传智播客成都java培训中心秀就业
传智播客成都java培训中心秀就业 2013年被称为"史上最难就业季",成都传智播客学员如何应对的呢? 成都传智播客的学员在工作经验上颇占优势,我们采用项目驱动式教学模式,具有多年开发实战经验及教学经 ...
- 传智播客张孝祥java邮件开发随笔01
01_传智播客张孝祥java邮件开发_课程价值与目标介绍 02_传智播客张孝祥java邮件开发_邮件方面的基本常识 03_传智播客张孝祥java邮件开发_手工体验smtp和pop3协议 第3课时 关于 ...
- 成都传智播客java就业班(14.04.01班)就业快报(Java程序猿薪资一目了然)
这是成都传智播客Java就业班的就业情况,很多其它详情请见成都传智播客官网:http://cd.itcast.cn?140812ls 姓名 入职公司 入职薪资(¥) 方同学 安**软件成都有限公司(J ...
- 成都传智播客java就业班激情洋溢的青春篮球赛
为了缓解学员们的学习压力,也为了培养学员们的团队协作精神,5月28日下午,在班主任倪老师和王老师联手带领下,我们1406280ls" style="color:rgb(51,102 ...
- 传智播客--ADO.net--SqlBulkCopy批量插入数据(小白必知)
一般情况下,我们在向数据库中插入数据时用Insert语句,但是当数据量很大的时候,这种情况就比较缓慢了,这个时候就需要SqlBulkCopy这个类. SqlBulkCopy本身常用的函数有这么几个 D ...
- 传智播客--高级控件--showdialog关闭(小白内容)
以往我在WPF里,用ShowDialog展示出一个页面,一般都是用Close()进行关闭. 今天看传智播客的视频时,了解到还能直接给DialogResult一个TRUE或者false的属性,使页面关闭 ...
随机推荐
- 基于近红外与可见光双目摄像头的活体人脸检测,文末附Demo
基于近红外与可见光双目摄像头的活体人脸检测原理 人脸活体检测(Face Anti-Spoofing)是人脸识别系统中的重要一环,它负责验证捕捉到的人脸是否为真实活体,以抵御各种伪造攻击,如彩色纸张打印 ...
- 鸿蒙开发 HarmonyOS DevEco Studio 常用快捷键
前言 做 HarmonyOS 鸿蒙开发离不开 DevEco Studio 开发工具, DevEco Studio 是基于 IntelliJ IDEA Community 开源版本打造,所以默认的快捷键 ...
- laravel-echo-server 启动报错 [ioredis] Unhandled error event: ReplyError: NOAUTH Authentication required.
可以在 .env 文件加上以下配置 LARAVEL_ECHO_SERVER_REDIS_HOST= LARAVEL_ECHO_SERVER_REDIS_PASSWORD= LARAVEL_ECHO_S ...
- 冒泡排序(LOW)
博客地址:https://www.cnblogs.com/zylyehuo/ # _*_coding:utf-8_*_ import random def bubble_sort(li): for i ...
- linux下的nginx重启命令常见以下3种:
systemctl restart nginx service nginx restart /usr/sbin/nginx -s reload
- 理解和使用Oracle 日志分析工具-LogMiner
分类专栏: oracle日志 原文地址:https://blog.csdn.net/wishfly/article/details/660747 Oracle LogMiner 是Oracle ...
- Delphi 判断操作系统是32位或是64位
function IsWin64: Boolean; var Kernel32Handle: THandle; IsWow64Process: function(Handle: Windows.THa ...
- 抽象类和接口的对比、及各自的使用场景--java进阶day02
1.区别 2.各自的使用场景 1.抽象类的使用场景 如图,有三个类,其中存在共性,我们就会写一个父类并抽取出共性的东西,但有的方法难免会描述不清,所以我们就将其写为了抽象方法,抽象方法又得存在于抽象类 ...
- 【Python】Python环境安装与简单代码运行
Python环境安装与简单代码运行 视频教程链接:https://www.bilibili.com/video/BV1KG4y1t7dM/ 一.配置Python环境 1.下载Python安装包 建议使 ...
- RAG, GraphRAG, LightRAG, and KAG
KAG: A Better Alternative to RAG for Domain-Specific Knowledge Applications https://medium.com/@ahme ...