• 今天主要说些内部类的相关基础知识,如果能做出下面这个小题目,再下面的内容不看也罢(面试题答案在最后)
    内部类面试题:补全下列代码,实现目标输出,其中描述阶段的数字只能调用已有变量,不能用其他方式
    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版笔记的更多相关文章

  1. 传智播客JavaWeb day02笔记

    2015年1月21日 今天的主要内容:介绍了几款常用Javaweb服务器,重点介绍了tomcat以及tomcat的安装和怎么样检测安装成功 1.JavaWeb常见服务器 Tomcat(免费但是只支持部 ...

  2. 传智播客Springmvc_mybatis学习笔记

    文件地址:https://download.csdn.net/download/qq_26078953/10614459

  3. 揭秘传智播客班级毕业薪资超7k的内幕系列 之三 ----国企慕名而来,将未毕业学员“抢走”,传智播客又一次定义“被就业”

    前面文章提及Java六期学员张同学提前就业某国企,入职薪资6.3k,各种福利齐全.作为班级首位就业同学,他的就业也成为了班级其它同学就业的风向标.但事实上张同学的就业属于"被就业" ...

  4. 成都传智播客java就业班和基础班

    传智播客成都Java培训,带你走进Java的世界... 我们有咨询的教育团队,一流的名师指导: 我们是重视基础理论建设,强化高端应用技能: 我们有四大JavaEE项目,海量Android项目: 我们是 ...

  5. 传智播客成都java培训中心秀就业

    传智播客成都java培训中心秀就业 2013年被称为"史上最难就业季",成都传智播客学员如何应对的呢? 成都传智播客的学员在工作经验上颇占优势,我们采用项目驱动式教学模式,具有多年开发实战经验及教学经 ...

  6. 传智播客张孝祥java邮件开发随笔01

    01_传智播客张孝祥java邮件开发_课程价值与目标介绍 02_传智播客张孝祥java邮件开发_邮件方面的基本常识 03_传智播客张孝祥java邮件开发_手工体验smtp和pop3协议 第3课时 关于 ...

  7. 成都传智播客java就业班(14.04.01班)就业快报(Java程序猿薪资一目了然)

    这是成都传智播客Java就业班的就业情况,很多其它详情请见成都传智播客官网:http://cd.itcast.cn?140812ls 姓名 入职公司 入职薪资(¥) 方同学 安**软件成都有限公司(J ...

  8. 成都传智播客java就业班激情洋溢的青春篮球赛

    为了缓解学员们的学习压力,也为了培养学员们的团队协作精神,5月28日下午,在班主任倪老师和王老师联手带领下,我们1406280ls" style="color:rgb(51,102 ...

  9. 传智播客--ADO.net--SqlBulkCopy批量插入数据(小白必知)

    一般情况下,我们在向数据库中插入数据时用Insert语句,但是当数据量很大的时候,这种情况就比较缓慢了,这个时候就需要SqlBulkCopy这个类. SqlBulkCopy本身常用的函数有这么几个 D ...

  10. 传智播客--高级控件--showdialog关闭(小白内容)

    以往我在WPF里,用ShowDialog展示出一个页面,一般都是用Close()进行关闭. 今天看传智播客的视频时,了解到还能直接给DialogResult一个TRUE或者false的属性,使页面关闭 ...

随机推荐

  1. 基于近红外与可见光双目摄像头的活体人脸检测,文末附Demo

    基于近红外与可见光双目摄像头的活体人脸检测原理 人脸活体检测(Face Anti-Spoofing)是人脸识别系统中的重要一环,它负责验证捕捉到的人脸是否为真实活体,以抵御各种伪造攻击,如彩色纸张打印 ...

  2. 鸿蒙开发 HarmonyOS DevEco Studio 常用快捷键

    前言 做 HarmonyOS 鸿蒙开发离不开 DevEco Studio 开发工具, DevEco Studio 是基于 IntelliJ IDEA Community 开源版本打造,所以默认的快捷键 ...

  3. 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 ...

  4. 冒泡排序(LOW)

    博客地址:https://www.cnblogs.com/zylyehuo/ # _*_coding:utf-8_*_ import random def bubble_sort(li): for i ...

  5. linux下的nginx重启命令常见以下3种:

    systemctl restart nginx service nginx restart /usr/sbin/nginx -s reload

  6. 理解和使用Oracle 日志分析工具-LogMiner

      分类专栏: oracle日志   原文地址:https://blog.csdn.net/wishfly/article/details/660747 Oracle LogMiner 是Oracle ...

  7. Delphi 判断操作系统是32位或是64位

    function IsWin64: Boolean; var Kernel32Handle: THandle; IsWow64Process: function(Handle: Windows.THa ...

  8. 抽象类和接口的对比、及各自的使用场景--java进阶day02

    1.区别 2.各自的使用场景 1.抽象类的使用场景 如图,有三个类,其中存在共性,我们就会写一个父类并抽取出共性的东西,但有的方法难免会描述不清,所以我们就将其写为了抽象方法,抽象方法又得存在于抽象类 ...

  9. 【Python】Python环境安装与简单代码运行

    Python环境安装与简单代码运行 视频教程链接:https://www.bilibili.com/video/BV1KG4y1t7dM/ 一.配置Python环境 1.下载Python安装包 建议使 ...

  10. RAG, GraphRAG, LightRAG, and KAG

    KAG: A Better Alternative to RAG for Domain-Specific Knowledge Applications https://medium.com/@ahme ...