【深耕静禅_Java_内部类_2020年4月6日17:26:02】教程文章相关的互联网学习教程文章

Java多线程-----匿名内部类创建线程【代码】

1.继承Thread类创建线程package com.practise.createthread;publicclass AnonymousThread {publicstaticvoid main(String[] args) {new Thread("线程一") {publicvoid run() {for(int i=1;i<=20;i++) {System.out.println(Thread.currentThread().getName()+":"+i);}}}.start();Thread.currentThread().setName("主线程");for(int i=1;i<=20;i++) {System.out.println(Thread.currentThread().getName()+":"+i);}} } 2.实现Runna...

java学习之内部类、匿名内部类【代码】

内部类定义在局部时:  1.不可以被成员修饰符修饰  2.可以直接访问外部类中的成员,因为还持有外部类中的引用,但是不可以访问它所在的局部中的变量,只能访问被final修饰的局部变量package com.dreamy.day04;/*** @author dreamy**/class Outer{int x=3;void method(finalint a) {finalint y=4;class Inner{void function() {System.out.println(a);}}new Inner().function();} } publicclass InnerClassDemo01 {/*** @param ...

Java中的内部类、匿名类的使用【代码】

代码(test.java): 1interface ie{2publicvoid print();3}4 5class outer{}6 7publicclass test{8publicclass inner{}9publicvoid test(ie e){ 10 e.print(); 11 } 12publicstaticvoid main(String[] args){ 131415new test().test(new ie(){ 16publicvoid print(){ 17 System.out.println("匿名类"); 18 } 19 }); 2021 } 22 }编译后产生class文件包括:接口ie.class 外部类oute...

Java 中的匿名内部类【图】

所谓的匿名内部类就是没有名字的内部类,通常此类型内部类只使用一次。匿名内部类在创建时,必须作为 new 语句的一部分来声明,这就要采用另一种特殊形式的 new 语句。语法 : 这种形式的 new 语句声明一个新的匿名类,它对一个给定的类进行扩展,或者实现一个给定的接口,同时还创建那个类的一个新实例,并把它作为语句的结果而返回。例如,定义一个接口,如下所示:定义接口的实现类:测试程序如下:运行结果为:其中, Service ...

java匿名内部类【代码】

java匿名内部类通常没有对象变量点。它只能使用一次例如,下面的代码,要使用抽象类People的eat还继承和复制的方法eat方式,很麻烦。相同的情况也适用于接口。package com.lubby.nosynchronizedtest;public abstract class People { public abstract void eat() ; }<pre name="code" class="java">package com.lubby.nosynchronizedtest;public class Teacher extends People {@Overridepublic void eat() {System.out.println("老...

【java基础】内部类【代码】

如果一个事物的内部包含另一个事物,那么这就是一个类内部包含另一个类。例如:身体和心脏的关系。又如:汽车和发动机的关系。分类:1. 成员内部类2. 局部内部类(包含匿名内部类)修饰符 class 外部类名称 { 修饰符 class 内部类名称 { // ... } // ... }注意:1)内用外,随意访问;外用内,需要内部类对象。2)如果出现了重名现象,那么格式是:外部类名称.this.外部类成员变量名==========================如何使用成员内部类?...

【50】java 匿名内部类剖析【代码】【图】

匿名内部类介绍:匿名内部类也就是没有名字的内部类正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写但使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口匿名内部类的声明格式如下:new ParentName(){ ...// 内部类的定义 }匿名内部类的使用场景:.只用到类的一个实例 。 ·类在定义后马上用到。 ·类非常小(SUN推荐是在4行代码以下) ·给类命名并不会导致你的代码更容易被理解。匿名内部类的...

【Java课程心得】高级类的特征二 终---初始化块、抽象类、接口、内部类||关键字static、final,包括单例设计模式、模板方法设计模式【代码】【图】

高级类特性二 1.static关键字类变量、类方法用法: 2.单例(Singleton)设计模式饿汉式懒汉式总结 3.理解main方法的语法4.类的成员之四:初始化块总结匿名内部类 5.关键字finalfinal举例 6.抽象类(abstract class)例子②:一些小问题与示例※模板方法设计模式(TemplateMethod) 7.更彻底的抽象:接口(interface)示例接口的其他一些问题接口总结 8.工厂方法(FactoryMethod)和代理模式(Proxy)9.类的成员之五:内部类内部类特性 面向对象...

java基础---设计模式、内部类、反射

1.什么是设计模式 (1)设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结. (2)此术语是在1990年代由Erich Gamma等人从建筑设计领域引入到计算机科学中来的。 (3)使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。 2.设计模式的分类 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模...

java学习笔记之Object、类关系、内部类、设计模式【代码】【图】

Object Object是java中提供的一个根类(祖宗) 所有类都直接或者间接的继承了Object如果一个类没有显示继承一个父类的话,那么该类默认继承Object既然Object是所有类的祖类,也就意味着 Object中的方法是所有类都有的功能Object xxx = new xxxx() ; 是可以发生多态的因为多态的原因,如果一个方法需要传递的数据,我们不能确定数据的类型的时候,可以写Object Equals关于Object中的equals方法 public boolean equals(Object obj){ return ...

java – 在Android日志中的活动类名称后面的美元($)符号(非匿名内部类)【代码】

参见英文答案 > Meanings of dollar sign in Java method descriptor? 1个我正在浏览我的应用程序的一些崩溃日志,堆栈跟踪显示如下:at MyActivity.formatDouble(MyActivity.java:182) at MyActivity.access$47(MyActivity.java:196) at MyActivity$28.onCameraChange(MyActivity.java:167)“MyActivity”是一项活动,因此不是匿名的内部类.我不能确定#3线上的美元符号(以及第2行中的美元符...

Java静态内部类和非静态内部类的区别【代码】

以下当作学习笔记使用,避免遗忘 静态内部类与非静态内部类 这两种类都是为了编码方便,创建一个Outer类如下: public class Outer {static class InnerOne{public static void show(){System.out.println("静态内部类中的静态方法");}public void shows(){System.out.println("静态内部类中的非静态方法");}}class InnerTwo{public void show(){System.out.println("非静态内部类中的非静态方法");}} }创建一个Outer类的测试类 pu...

从Java的lambda表达式加深理解:面向对象、封装、匿名内部类;面向过程(函数式)、闭包、匿名函数【代码】

三个Main类: 第一个Main类: public class Main {public static void main(String[] args) {Main main = new Main();main.test();}void test() {int i = 2;i++;((Runnable) () -> {int j=i;System.out.println(j);}).run();} }这个Main类并不能通过编译,因为这违反了闭包原则: 提示: Variable used in lambda expression should be final or effectively final 也就是说,java的lambda表达式只能从外部语境中引入不变量,所以其...

13_Java面向对象_第13天(static、final、匿名对象、内部类、包、修饰符、代码块)【代码】【图】

今日内容介绍1、final 关键字2、static 关键字3、匿名对象4、内部类5、包的声明与访问6、访问修饰符7、代码块01final关键字概念A: 概述继承的出现提高了代码的复用性,并方便开发。但随之也有问题,有些类在描述完之后,不想被继承,或者有些类中的部分方法功能是固定的,不想让子类重写。可是当子类继承了这些特殊类之后,就可以对其中的方法进行重写,那怎么解决呢?要解决上述的这些问题,需要使用到一个关键字final,final的意...

【Java编程思想】10.内部类

将一个类的定义放在另一个类的定义内部,这就是内部类。10.1 创建内部类内部类的名字是嵌套在外部类里面的 外部类可以有方法,返回一个指向内部类的调用。(外部类中可以调用内部类) 如果在外部类中,希望能在除了静态方法之外的任意位置创建某个内部类对象,那么可以向下面这样指明对象类型。OuterClassName.InnerClassName x = new InnerClassName();10.2 链接到外部类 在创建了一个内部类的对象后,内部类与制造它的外围对象(...