java使用内部类的好处及其初始化】的更多相关文章

java使用内部类的原因 每个内部类都能独立地继承自一个(接口的)实现,所以无论外围类是否已经继承了某个(接口的)实现,对于内部类都没有影响          java内部类初始化 ForeCatalog foreCatalog = new ForeCatalog(); URLInfo urlInfo = foreCatalog.new URLInfo(); urlInfo.setUrl("www.baidu.com/index.html"); foreCatalog.setUrl(u…
JAVA内部类详解 在我的另一篇java三大特性的封装中讲到java内部类的简单概要,这里将详细深入了解java内部类的使用和应用. 我们知道内部类可分为以下几种: 成员内部类 静态内部类 方法内部类 匿名内部类 这里我们先将以这个分类来详细了解各个内部类的情况.然后给内部类作出总结. 一.成员内部类 内部类中最常见的就是成员内部类,也称为普通内部类.我们来看如下代码: 运行结果为: 从上面的代码中我们可以看到,成员内部类的使用方法: 1. Inner 类定义在 Outer 类的内部,相当于 O…
放在一个类的内部的类我们就叫内部类. 二. 作用 1.内部类可以很好的实现隐藏 一般的非内部类,是不允许有 private 与protected权限的,但内部类可以 2.内部类拥有外围类的所有元素的访问权限 3.可是实现多重继承 4.可以避免修改接口而实现同一个类中两种同名方法的调用. 提起Java内部类(Inner Class)可能很多人不太熟悉,实际上类似的概念在C++里也有,那就是嵌套类(Nested Class),关于这两者的区别与联系,在下文中会有对比.内部类从表面上看,就是在类中又定…
List,Set,Map的两种初始化赋值方式  List List<Integer> list2 = new ArrayList<Integer>(); for (int i=0;i<times;i++){ list2.add(i); } List<Integer> list1 = new ArrayList<Integer>(){ { for (int i=0;i<times;i++){ add(i); } } };  Map Map<S…
01 前言 昨天晚上,我把车停好以后就回家了.回家后才发现手机落在车里面了,但外面太冷,冷到骨头都能感受到寒意——实在是不想返回一趟去取了(小区的安保还不错,不用担心被砸车玻璃),于是打定主意过几个小时的“世外桃源”生活——别人找不到我,我也找不到别人,这种与世隔绝的状态非常适合读书写作. 把厚厚的<Java编程思想>摆在桌子上,正襟危坐,认认真真地读起了第十章——内部类.尽管我已经非常耐心和用心了,但内部类的这一章非常的枯燥,并且难以理解,我整个人几乎处于崩溃的边缘. 很早之前,有想要转行学…
[Java]内部类 可以将一个类的定义放在另一个类的定义内部,这就是内部类. 使用内部类的的原因主要有三点: 内部类方法可以访问该类定义所在的作用域中的数据,包括私有的数据. 内部类可以对同一个包中的其他类隐藏起来. 当想要定义一个回调函数且不想编写大量代码时,使用匿名(anonymous)内部类比较便捷. 使用内部类访问对象状态 public class TalkingClock { private int interval; private boolean beep; public Talk…
Java学习--内部类(一) 一. 内部类的定义和特点 class Outer{ privite int num = 5; class Inner{ public void Display(){ System.out.println(num); } } public void method(){ Inner i = new Inner(); i.Display(); } } 这里写了一个类Outer,它有一个私有变量,一个成员方法method(),和一个内部类Inner.在内部类Inner中访问…
Java的内部类 首先我们来了解一下什么是内部类? 内部类是指在一个外部类的内部再定义一个类.内部类可以是静态static的,也可用public,default,protected和private修饰.(而外部顶级类即类名和文件名相同的只能使用public和default)   为什么要使用内部类? 比如我们在new一个接口的时候,我们是不是需要new一个实现接口的类,然后要实现接口中的方法,显得很麻烦,如果是使用内部类的话,可以直接在类中直接new一个接口的实现,显得是很方便的,又例如我们要使…
JAVA面向对象-–内部类的概述s 将类定义在另一个类的内部则成为内部类.其实就是类定义的位置发生了变化. 在一个类中,定义在类中的叫成员变量,定义在函数中的叫成员函数,那么根据类定义的位置也可以分为成员内部类和局部内部类. 备注:内部类生产的class文件为 "外部类$内部类",为了标明该内部类是属于具体哪个外部类的. [正在看本人博客的这位童鞋,我看你气度不凡,谈吐间隐隐有王者之气,日后必有一番作为!下面有个"顶"字,你就顺手把它点了吧(要先登录CSDN账号哦…
内部类 // 外部类 class Demo{ private int num = 3; // 定义内部类 class Int{ void show(){ System.out.println("num="+num); } } void method(){ Int int = new Int(); int.show(); } } class Inner{ public static void main(Stirng[] args){ Demo demo = new Demo(); dem…
Java变量的默认值和初始化 学习自 <Thinking In Java> 技术小黑屋-为什么局部变量需要显式设置初始化值 变量的默认值 注意只有成员变量才有默认值,而局部变量必须要赋初值.为什么会这么设计,下面会讨论. 关于各种基础类型的默认值,大家肯定都耳熟能详了,这里就不在叨叨,详见下表: | 类型 | 值 | |----------------------|-----------------------------------| | Int | 0 | | Long | 0 | | B…
Java 基础 内部类 内部类(嵌套类) nested class 目的为外围类enclosing class提供服务. 四种: 静态成员类 static member class 非静态成员类 nonstatic member class 匿名类 anonymous class 局部类 local class 以下来自effective java 22 非静态成员类的每个实例 都隐含着与外围类的 一个外围实例enclosing instance 相关联. 在非静态成员类的实例方法内部,可以调用…
一.JAVA中内部类和匿名内部类的区别 内部类:内部类可以是static的或者非static的,static内部类只能包含静态方法和静态类变量,只能访问外部类的静态元素,内部类可以实例化,多次使用. 匿名内部类:它只能使用一次,不区分static和非static.如果用到外部类的变量的话,必须是类变量或者实例变量,就是必须是类定义的变量,或者final的局部变量.匿名内部类如果是继承某个类的话是可以重写那个类的方法的,这个和普通内部类一样.  总结:可以用匿名内部类的地方都可以用内部类替换,但是…
java中有一个内部类的概念,由于之前一直比较忙,没有单独拿出时间总结一下,今天我就把内部类的相关知识进行一下汇总,如果有不足之处,欢迎批评指正. 1)java内部类的概念.       在一个类的的内部定义的类被称为java的内部类.内部类提供了更好的封装.而且它可以直接访问外部类的private成员. 2)内部类的分类      根据内部类的位置不同,可以大致分为一下两类: 1.普通内部类又叫成员内部类,在方法体的外面定义的内部类 其中普通内部类又分为静态(static修饰的内部类)和非静态…
内部类: 一个类定义在另外一个类的内部就称作为内部类. 内部类的类别: 1.成员内部类: 2.局部内部类: 1.成员内部类: 成员内部类的访问方式: 方式一:在成员内部类的外侧提供一个方法创建内部类的对象进行访问,其它类使用时,创建该成员内部类的外部类的对象,由外部对象调用在外部类外侧的方法. 方式二:在其他类直接创建内部类的对象. 格式:外部类.内部类 变量名 = new 外部类().new 内部类(); 注意:如果是一个静态内部类,那么在其他类创建的格式: 外部类.内部类 变量名 = new…
深入理解java虚拟机>:类的初始化 类从被载入到虚拟机内存中開始.到卸载出内存为止,它的整个生命周期包含:载入.验证.准备.解析.初始化.使用和卸载七个阶段.当中验证.准备.解析3个部分统称为连接. 类载入的过程包含了载入.验证.准备.解析.初始化五个阶段. 载入.验证.准备.初始化和卸载这5个阶段的顺序时确定的.类的载入过程必须依照这样的顺序按部就班的開始,而解析阶段则不一定,它在某些情况下能够在初始化阶段之后開始,这是为了支持Java语言的运行时绑定(也成为动态绑定或晚期绑定). 另外注意…
原文地址 Java类的加载.链接和初始化.Java字节代码的表现形式是字节数组(byte[]),而Java类在JVM中的表现形式是java.lang.Class类的对象.一个Java类从字节代码到能够在JVM中被使用,需要经过加载.链接和初始化这三个步骤.这三个步骤中,对开发人员直接可见的是Java类的加载,通过使用Java类加载器(class loader)可以在运行时刻动态的加载一个Java类:而链接和初始化则是在使用Java类之前会发生的动作.本文会详细介绍Java类的加载.链接和初始化的…
Java语言中数组必须先初始化,然后才可以使用.所谓初始化,就是为数组的数组元素分配内存空间,并为每个数组元素赋初始值. 这时有人会问,能不能只分配内存空间,不赋初始值呢?答案是肯定不行的,一旦为数组的每个数组元素分配了内存空间,每个内存空间里存储的内容就是该数组元素的值,即使这个内存空间存储的内容是空,这个空也是一个值(null),不管以哪种方式来初始化数组,只要为数组分配了内存空间,数组元素就具有了初始值.初始值的获得由两种形式:一种由系统自动分配:另一种由程序员指定. 数组的初始化有如下两…
一维数组:可以理解为一列多行.类型相同的数据,其中每个数据被称为数组元素: 一维数组的声明方式: type varName[]; 或 type[] varName;(推荐) Eg:int age[]; int []age; 数组的长度一旦确定,就不能改变,也就数组是定长的; 我的总结:java语言声明数组的时候不能指定其长度(元素的个数) Eg:int a[5]; //非法 初始化: Java中的数组必先初始化才可以使用,所谓初始化就是为数组的数组元素分配内存,并为每个数组元素赋值: 数组初始化…
目录 小白学Java:内部类 内部类的分类 成员内部类 局部内部类 静态内部类 匿名内部类 内部类的继承 内部类有啥用 小白学Java:内部类 内部类是封装的一种形式,是定义在类或接口中的类. 内部类的分类 成员内部类 即定义的内部类作为外部类的一个普通成员(非static),就像下面这样: public class Outer { class Inner{ private String id = "夏天"; public String getId() { return id; } }…
Java:内部类小记 对 Java 中的 内部类,做一个微不足道的小小小小记 首先:内部类是指在一个外部类的内部再定义一个类.内部类作为外部类的一个成员,并且依附于外部类而存在的. 成员内部类 成员内部类可以无条件访问外部类的所有成员属性和成员方法(包括 private 成员和 static 成员) 如果要访问外部类同名的成员,需要以下面的形式进行访问: 外部类.this.成员变量 外部类.this.成员方法 在外部类中如果要访问内部类的成员,必须先创建一个成员内部类对象,再通过指向这个对象的引…
合集目录 Java语法专题2: 类变量的初始化顺序 问题 这也是Java面试中出镜率很高的基础概念问题 描述一下多级继承中字段初始化顺序 描述一下多级继承中类变量初始化顺序 写出运行以下代码时的控制台输出 public class Base { public static int v1 = method(1); private static int v2 = method(2); private int v3; private int v4 = method(3); public Base()…
在Java中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类.广泛意义上的内部类一般来说包括这四种:成员内部类.局部内部类.匿名内部类和静态内部类. 下面就先来了解一下这四种内部类的用法. 1.成员内部类 成员内部类是最普通的内部类,它的定义为位于另一个类的内部,形如下面的形式: class Circle { double radius = 0; public Circle(double radius) { this.radius = radius; } class Draw…
  10.1 如何定义内部类 如代码10.1-1 所示 public class Parcel1 { public class Contents{ private int value = 0;​ public int getValue(){ return value; } }}   这是一个很简单的内部类定义方式,你可以直接把一个类至于另一个类的内部,这种定义Contents类的方式被称为内部类 那么,就像代码10.1-1所展示的,程序员该如何访问Contents中的内容呢? 如代码10.1-2…
在Java语言中,可以把一个类定义到另一个类的内部,在类里面的这个类就叫作内部类,外面的类叫作外部类.在这种情况下,这个内部类可以被看成外部类的是一个成员(与类的属性和方法类似).还有一种类被称为顶层(Top-level)类,指的是类定义代码不嵌套在其他类定义中的类. 内部类主要有以下四种:静态内部类.成员内部类.局部内部类和匿名内部类. 1.静态内部类 class outerClass{ static class innerClass{} //静态内部类 } 静态内部类是指被声明为static…
这篇文章主要讲述Java 内部类的相关知识,主要讲解下面的知识点. 内部类的概念 内部类的特点与使用 多种形式内部类 为什么要使用内部类 内部类的概念 内部类是指在一个类的内部定义了另一个类.例如下面的代码中例子,就是一个简单的内部类. public class A { private int a; public class B{ private int b; } } 在这个类中,我们可以看出内部类B就像A的成员一样.所以我们对内部类的修饰也可以用很多种修饰符,比如我们是不可能对一个非内部类用p…
什么是内部类? 内部类是指在一个外部类的内部再定义一个类.内部类作为外部类的一个成员,并且依附于外部类而存在的.内部类可为静态,可用protected和private修饰(而外部类只能使用public和缺省的包访问权限).内部类主要有以下几类:成员内部类.局部内部类.静态内部类.匿名内部类 内部类的共性 (1).内部类仍然是一个独立的类,在编译之后内部类会被编译成独立的.class文件,但是前面冠以外部类的类名和$符号 . (2).内部类不能用普通的方式访问. (3).内部类声明成静态的,就不能…
内部类是指在一个外部类中再定义一个类,类名不需要和文件名相同 内部类可以是静态的,类的修饰符可以是private,default,protect,public修饰 ,而外部类只能是public 和 default修饰 注意:内部类是一个编译时的概念,一旦编译成功,就会成为完全不同的两类.对于一个名为outer的外部类和其内部定义的名为inner的内部类.编译完成后出现outer.class和outer$inner.class两类.所以内部类的成员变量/方法名可以和外部类的相同. 内部类可以按照以…
普通内部类默认持有指向所属外部类的引用.如果新定义一个类来继承内部类,那“秘密”的引用该如何初始化? java提供了特殊的语法: class Egg2 { public class Yolk{ public Yolk(){ System.out.println("Egg2.Yolk"); } } } class BigEgg2 { public class Yolk extends Egg2.Yolk { public Yolk(){ } } } 上面这段代码编译无法通过,错误在10行…
先看下面这段代码: public class Test { public static void main(String[] args) { } public void test(final int b) { final int a = 10; new Thread(){ public void run() { System.out.println(a); System.out.println(b); }; }.start(); } } 这段代码会被编译成两个class文件:Test.class…