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的属性,使页面关闭 ...
随机推荐
- Java进阶 - [1-1] 六大设计原则
不要因为某本书而去读,而是因为这本书让你读起来时常有共鸣而去读. 一.单一职责原则 [术语]:SRP,Single Reposibility Principle [定义]:一个类或者模块只负责完成一个 ...
- K8s - 容器编排引擎Kubernetes
什么是Kubernetes? 背景 Kubernetes 是开源的容器集群管理项目,诞生于2014年,由Google公司发起 前身Borg系统在Google内部应用了十几年,积累了大量来自生产环境的实 ...
- C++最基本调用动态链接库dll方法的小结
针对当时初学动态链接.静态链接,有些文档整理一下发出来算是给自己和读者一个小结. 首先创建DLL 编辑头文件 dllmain.h 头文件: #pragma once #if defined(_DLL_ ...
- 分享一个裁剪图片Chrome 扩展 —— Crop Image
1. 前言 在日常工作和设计过程中,我们常常需要对图片进行裁剪,以适配不同的使用场景.无论是社交媒体头像.网站图片优化,还是艺术设计,精确的图片裁剪都是必不可少的.然而,许多在线工具使用复杂,或者功能 ...
- 自动化-Yaml文件写入函数封装
1.文件布局 打开文件修改读取方式为w dump函数写入文件 写入中文 使用allow_unicode=True class ReadConfiYaml: def __init__(self,yaml ...
- 22. Generate Parentheses--求n对括号组成可以组成的全部有效括号序列
描述: Given n pairs of parentheses, write a function to generate all combinations of well-formed paren ...
- npm淘宝镜像证书过期
前言 使用 npm 报错: npm ERR! request to https://registry.npm.taobao.org/xxx failed, reason: certificate ha ...
- python 函数与方法的区别
函数与方法的区别 并不是类中的调用都叫方法 1.函数要手动传self,方法不用传self. 2.如果是一个函数,用类名去调用,如果是一个方法,用对象去调用. class Foo(object): de ...
- PostgreSQL configure: error: readline library not found
前言 安装 PostgreSQL 时报错,以下 configure: error: readline library not found If you have readline already in ...
- windows 10 平台使用命令行批量获取一个文件夹下所有文件的路径
1 打开命令行, 定位路径到指定磁盘 2 使用cd命令定位到指定路径 3 输入以下命令, 想要的结果就保存在了filename.txt中 dir /b/s filename.txt 结果: