随笔分类 -  Java

摘要:局部内部类是定义在方法体或代码块中的类,在笔记19中已有过简单介绍。 今天要讨论的是局部内部类为什么只能访问为常量的局部变量。 作者: 博客园--蝉蝉 请尊重作者劳动成果,转载请在标题注明“转载”字样,并标明原文链接: http://www.cnblogs.com/chanchan/p/840241 阅读全文
posted @ 2018-02-02 01:19 蝉蝉 阅读(1258) 评论(1) 推荐(0)
摘要:成员内部类可以继承其他的类,也可以被其它类继承,本文主要说明其它类继承成员内部类的问题。 本文要点如下: 1).成员内部类的子类可以是内部类,也可以不是内部类; 2).当成员内部类的子类不是内部类或子类虽是内部类但与其父类不在同一个外部类时,子类的构造方法第一句要显式添加如下的语句: 外部类对象引用 阅读全文
posted @ 2018-01-26 16:40 蝉蝉 阅读(8571) 评论(1) 推荐(1)
摘要:修正:原文章有点错误,主要是关于成员内部类的子类的问题。 由于本人认知局限,想当然的认为内部类的子类也应该是内部类,其实不然,关于内部类的继承的知识点会在笔记22中说明。 改动的地方主要有: 1).追加了“ 5.InnerClassChild2与内部类不同包”,测试了内部类的成员方法在与成员内部类不 阅读全文
posted @ 2018-01-23 18:03 蝉蝉 阅读(380) 评论(0) 推荐(2)
摘要:上篇文章--笔记19简要介绍了成员内部类、局部内部类和匿名内部类,下面对成员内部类再补充一些内容。 主要有以下6点: 1.成员内部类不可以有静态成员,成员变量为static final时除外 2.外部类不可以直接访问成员内部类的成员变量或调用成员内部类的成员方法 3.成员内部类可以无限制的访问外部类 阅读全文
posted @ 2018-01-11 01:36 蝉蝉 阅读(983) 评论(0) 推荐(2)
摘要:内部类,顾名思义,即定义在某个类内部的类,称包含该内部类的类为外部类。 从定义的位置来说,分为成员内部类和局部内部类;从类的特征来说,分为匿名内部类和静态内部类。 今天先简要介绍一下前三种内部类的定义及简单使用。 如需转载请注明出处,谢谢: http://www.cnblogs.com/chanch 阅读全文
posted @ 2018-01-08 02:00 蝉蝉 阅读(765) 评论(0) 推荐(1)
摘要:英语里final这个单词大家都知道是“最终的”意思,其实还有一个意思是“不可更改的”。在Java里,final关键字作“不可更改的”来解释更合适,即由final修饰的东西是“不可更改的”。final可以修饰变量、成员方法和类,还可以修饰方法的参数,但参数归根结底还是变量。下面是详细解释。 作者: 蝉 阅读全文
posted @ 2017-12-01 02:12 蝉蝉 阅读(8037) 评论(1) 推荐(1)
摘要:重载是指,一个类中定义了一个成员方法后,通过修改参数个数、参数类型或参数顺序,重新实现该方法,则这两个方法互为对方的重载方法。 重写是指,子类重新实现父类的成员方法。 重载后的方法,与原方法相比: (1).方法名相同,参数个数、参数类型及参数顺序至少有一个不同; (2).返回值类型与访问权限修饰符可 阅读全文
posted @ 2017-11-28 00:47 蝉蝉 阅读(2658) 评论(0) 推荐(0)
摘要:抽象类是由abstract修饰的类,定义方式如public abstract class A{...}。 接口由interface修饰,定义方式如public interface B{...}。 抽象类与接口的具体特性见下文。 抽象类: (1).抽象类中由abstract修饰的方法称为抽象方法,抽象 阅读全文
posted @ 2017-11-24 01:39 蝉蝉 阅读(699) 评论(2) 推荐(0)
摘要:感冒咳嗽停更了几天,今天恢复更新了。 先来看下instanceof与向下转型的概念: 1.instanceof instanceof是一个二元操作符,用法是:boolean result = a instanceof ClassA,即判断对象a是否是类ClassA的实例,如果是的话,则返回true, 阅读全文
posted @ 2017-11-20 01:00 蝉蝉 阅读(4217) 评论(0) 推荐(1)
摘要:有时会遇到this作为返回值的情况,那么此时返回的到底是什么呢? 返回的是调用this所处方法的那个对象的引用,读起来有点绕口哈,有没有想起小学语文分析句子成份的试题,哈哈。 一点点分析的话,主干是“返回的是引用”; 什么引用呢?“那个对象的引用”; 哪个对象呢?“调用方法的那个对象”; 调用的哪个 阅读全文
posted @ 2017-11-10 01:01 蝉蝉 阅读(4468) 评论(5) 推荐(2)
摘要:子类重新实现父类的方法称重写;重写时可以修改访问权限修饰符和返回值,方法名和参数类型及个数都不可以修改;仅当返回值为类类型时,重写的方法才可以修改返回值类型,且必须是父类方法返回值的子类;要么就不修改,与父类返回值类型相同。那么,该如何理解呢?为什么要是父类返回值类型的子类? 作者: 蝉蝉 请尊重作 阅读全文
posted @ 2017-11-07 01:45 蝉蝉 阅读(17468) 评论(8) 推荐(6)
摘要:当父类的对象引用没有指向父类的对象,而是指向了子类的对象时,调用方法或访问变量时会怎样呢? 假设父类为Person,子类为Student,有下面的两行定义: Student sTest = new Student(); Person pTest = sTest; 其中,pTest就是父类的对象引用, 阅读全文
posted @ 2017-11-05 15:03 蝉蝉 阅读(8626) 评论(0) 推荐(0)
摘要:当创建一个对象时,各种成员变量及构造方法的初始化或调用顺序是怎样的呢? (1).如果类尚未加载,则先初始化静态成员变量和静态代码块,再初始化成员变量,最后调用相应的构造方法; (2).如果类已经加载过了,则静态成员变量已经初始过了,静态代码块也已执行,这时只需初始化成员变量,再调用构造方法就可以了; 阅读全文
posted @ 2017-11-02 01:47 蝉蝉 阅读(1018) 评论(0) 推荐(0)
摘要:1.Java有三种访问权限修饰符,分别为public、protected、private,还有一种为缺省权限修饰符的情况,记为default。其中,可以由public和default来修饰类;这四种修饰符都可以修饰成员变量和成员方法。每一种修饰符对应不同的访问范围,下面以下图为例详细说明。 图1 p 阅读全文
posted @ 2017-10-30 00:51 蝉蝉 阅读(2771) 评论(0) 推荐(0)
摘要:笔记8提到了类静态成员变量的访问方式,但静态成员变量存储在哪里呢?在网上查阅不少资料,发现好多内容都是过时的了,其中主流观点是静态成员变量存放在方法区。JDK8之前,静态成员变量确实存放在方法区;但JDK8之后就取消了“永久代”,取而代之的是“元空间”,永久代中的数据也进行了迁移,静态成员变量迁移到 阅读全文
posted @ 2017-10-25 01:48 蝉蝉 阅读(29628) 评论(4) 推荐(12)
摘要:(注:静态变量修改为静态成员变量,静态方法改为静态成员方法) 静态成员变量又称类变量,静态成员方法又称类方法,它们统称为静态成员或类成员。静态成员由static修饰,是属于整个类的,所有的对象共享这些静态成员。不需要创建任何对象,静态成员在类装载时就已初始化了,整个运行期间其内存位置不变,直到类卸载 阅读全文
posted @ 2017-10-22 01:12 蝉蝉 阅读(14090) 评论(0) 推荐(2)
摘要:子类不继承父类的构造方法,但父类的构造方法对子类构造方法的创建有影响。 具体来说就是: ①.当父类没有无参构造方法时: 1).子类也不能有无参构造方法; 2).且必须在子类构造方法中显式以super(参数)的形式调用父类构造方法; 否则会出现如下的错误: Implicit super constru 阅读全文
posted @ 2017-10-17 01:21 蝉蝉 阅读(2236) 评论(0) 推荐(0)
摘要:方法原型为int compareTo(String str),返回值为int型,参数为字符串类型。 下面是简单示例: /* * compareTo()返回参与比较的两个字符串的ascii码差值 * Object类.... */ package packagetest; public class St 阅读全文
posted @ 2017-10-13 00:23 蝉蝉 阅读(2320) 评论(0) 推荐(0)
摘要:对于笔记3中的HelloWorld程序,编译时只要输入javac HelloWorld.java即可生成类文件;再用java HelloWorld即可运行。 如果源程序使用了包声明,编译运行时要使用某些参数才能成功编译或运行。下面用简单的例子说明一下。 作者: 蝉蝉 请尊重作者劳动成果,转载请在标题 阅读全文
posted @ 2017-09-29 23:49 蝉蝉 阅读(11159) 评论(0) 推荐(2)
摘要:写笔记四前的脑回路是这样的: 前面的学习笔记二,提到3个环境变量,其中java_home好理解,就是jdk安装路径;classpath指向类文件的搜索路径;path指向可执行程序的搜索路径。这里的类文件和可执行程序是分别在jvm和实际操作系统下执行的文件。对jvm来说,.class文件就相当于操作系 阅读全文
posted @ 2017-09-22 00:39 蝉蝉 阅读(2212) 评论(0) 推荐(1)