今天dubug代码时发现this.getClass()和super.getClass()得到的竟然是同一个类,都是当前类. 遍访网络资料得出: getClass()不受this和super影响,而是有当前的运行类决定的. 详细解释: getClass public final Class<? extends Object> getClass()返回一个对象的运行时类.该 Class 对象是由所表示类的 static synchronized 方法锁定的对象. 返回: 表示该对象的运行时类的 j…
下面程序的输出结果是多少? import java.util.Date; public class Test extends Date{ public static void main(String[] args) { new Test().test(); } public void test(){ System.out.println(super.getClass().getName()); } } 在test方法中,直接调用getClass().getName()方法,返回的是Test类名.…
下面程序的输出结果是多少?import java.util.Date;public class Test extends Date{public static void main(String[] args) {new Test().test();}public void test(){System.out.println(super.getClass().getName());}}很奇怪,结果是Test 在 test 方法中,直接调用getClass().getName()方法,返回的是Tes…
首先看一段代码: import java.util.Date;public class Test extends Date{ public static void main(String[] args) { new Test().test(); } public void test(){ System.out.println(super.getClass().getName()); }} 上面这段代码的输出为:Test 可能你会奇怪为什么输出的是Test,而不是Date呢?我明明是调用的supe…
If you override a method from your superclass (or your superclass's superclass etc.), super.theMethod() will invoke the original method instead of the one you overrode it with. If you did not actual override theMethod, super.theMethod() will act exac…
下面程序的输出结果是多少? importjava.util.Date; public class Test extends Date{ public static void main(String[] args) { new Test().test(); } public void test(){ System.out.println(super.getClass().getName()); } } 很奇怪,结果是Test 这属于脑筋急转弯的题目,在一个qq群有个网友正好问过这个问题,我觉得挺有…
原文地址:http://leihuang.org/2014/11/14/getClass-method/ 首先看一段代码: import java.util.Date; public class Test extends Date{ public static void main(String[] args) { new Test().test(); } public void test(){ System.out.println(super.getClass().getName()); } }…
package as; import java.util.Date; public class Test extends Date{ public static void main(String[] args) { new Test().test(); } public void test(){ System.out.println(super.getClass().getSuperclass().getName()); System.out.println(super.getClass().g…
package com.swift; import java.util.Date; public class Getclass_Test extends Date { public static void main(String[] args) { new Getclass_Test().test(); } public void test() { System.out.println(super.getClass().getName()); System.out.println(this.ge…
下面程序的输出结果是多少? import java.util.Date; public class Test extends Date{ public static void main(String[] args) { new Test().test(); } public void test(){ System.out.println(super.getClass().getName()); } } 程序输出的是Test. super它只是一个限定词,当用super引用时,它也是引用当前对象本…
一: 理解根目录 <value>classpath*:/application.properties</value> <value>classpath:/application.properties</value>    这里的classpath怎么理解呢,其实指的就是根目录,关于根目录,需要了解: (1): src不是classpath, WEB-INF/classes,lib才是classpath,WEB-INF/ 是资源目录, 客户端不能直接访问. (…
1.final类不能有子类,也就谈不上继承的说法,如果用final修饰成员变量或者局部变量,那成了常量需要制定常量的值. 2.对象的上转型对象,上转型对象不能操作子类新增的成员变量,不能调用子类新增的方法,上转型对象可以访问子类继承或者隐藏的成员变量,也可以调用子类继承的方法或者子类重写的实例方法.但是可以强制将对象的上转型对象再强制转换到一个子类对象,这时该子类对象又恢复了子类对象属性. 3.继承和多态,多态性就是指父类的某个方法被子类重写,可以各自产生自己的行为, 4.abstract抽象类…
1.  程序和进程的本质区别是? A.在外存和内存存储 B.非顺序和顺序执行机器指令 C.独占使用和分时使用计算机资源 D.静态和动态特征 参考答案分析: 进程与应用程序的区别: 进程(Process)是最初定义在Unix等多用户.多任务操作系统环境下用于表示应用程序在内存环境中基本执行单元的概念.以Unix操作系统 为例,进程是Unix操作系统环境中的基本成分.是系统资源分配的基本单位.Unix操作系统中完成的几乎所有用户管理和资源分配等工作都是通过操作系统 对应用程序进程的控制来实现的. …
1. 本周学习总结 1.1 尝试使用思维导图总结有关继承的知识点. 1.2 使用常规方法总结其他上课内容. 答:1.super() 子类不能继承父类的构造方法,但可以通过super关键字去访问父类的构造方法. 2.contains方法比较的是两个对象 3.多态:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果,这就是多态性. 参考资料: 百度脑图 XMind 2. 书面作业 1.注释的应用 使用类的注释与方法的注释为前面编写的类与方法进行注释,并在Eclipse中查看.(截图) 2…
以下通过实际例子对类创建过程汇中常用的equals().hashcode().toString()方法进行展示,三个方法的创建过程具有通用性,在项目中可直接改写. //通过超类Employee和其子类Manager ,验证在类继承过程中equals().hashcode().toString()方法的使用.package equals;public class EqualsTest{    public static void main(String[] args){        Employ…
Java中每个类都是由Object类扩展而来 1.equals方法 在Object类中,这个方法用于判断两个对象是否具有相同的引用,然而对于大多数类来说,经常需要检测两个对象状态的相等性. public boolean equals(Object otherObject){ if(this == otherObject)//检测this与otherObject是否引用同一个对象 return true; if(otherObject == null)//检测otherObject是否为null…
JDK8中Object类提供的方法: package java.lang; /** * Class {@code Object} is the root of the class hierarchy. * Every class has {@code Object} as a superclass. All objects, * including arrays, implement the methods of this class. * * @author unascribed * @see…
1.判断下列代码的运行情况 public class TestExtends { public static void main(String[] args) { Father obj = new Son(); System.out.println(obj.getEle()); } } class Father{ public int getEle(){ return 1; } } class Son extends Father{ public float getEle(){ return 2…
相信对于继承和多态的概念性我就不在怎么解释啦!不管你是.Net还是Java面向对象编程都是比不缺少一堂课~~Net如此Java亦也有同样的思想成分包含其中. 继承,多态,封装是Java面向对象的3大特征. 继承 如果用.Net写一个A类继承B类的话,写法会是大致如下: Public Class A : B{ ....... } Java的话却要通过extends关键字在声明类的时候指定其父类(基类),所以上面的.Net写法要转换成Java的话应该是下面的样子: Public clas A ext…
问题及答案来源自<Java程序员面试笔试宝典>第四章 Java基础知识 4.2面向对象技术 1.面向对象与面向过程有什么区别? 看下面一个实例即可: 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候依次调用: 面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为 可以拿生活中的实例来理解面向过程与面向对象,例如五子棋,面向过程的设计思路就是首先分析问题的步骤: 1.开始游戏,2.黑子先走…
本文参考 本篇文章参考自<Effective Java>第三版第十条"Obey the general contract when overriding equals" the conditions when each instance of the class is equal only to itself Each instance of the class is inherently unique -- 类的每一个实例本就彼此不同,例如Thread类,每一个线程仅和自…
前言 本篇博客主要梳理一下Java中对象比较的需要注意的地方,将分为以下几个方面进行介绍: ==和equals()方法 hashCode()方法和equals()方法 Comparator接口和Comparable接口 ==和equals()方法 在前面对String介绍时,谈到过使用==和equals()去比较对象是否相等. 使用==比较的是两个对象在内存中的地址是否一致,也就是比较两个对象是否为同一个对象.使用equals()方法可以依据对象的值来判定是否相等. equals()方法是根类O…
建议47: 在equals中使用getClass进行类型判断 本节我们继续讨论覆写equals的问题.这次我们编写一个员工Employee类继承Person类,这很正常,员工也是人嘛,而且在JEE中JavaBean有继承关系也很常见,代码如下: public class Client { public static void main(String[] args) { Employee e1 = new Employee("张三",100); Employee e2 = new Emp…
14down votefavorite   An article on classloading states that the method getClass() should not be called within a constructor because: object initialization will be complete only at the exit of the constructor code. The example they gave was: public c…
通过观看视频讲解,我得知,Class 老师讲解的是 这个是类的类,即是管理类的类.当时不是很理解,随后查询了相关资料后,以及真切的运行了几行代码后,才有一些深层次的体会, 在这里想要跟大家分享一下.如果有说的不对的地方,还欢迎老师和同学进行纠错指正. 首先,我做的就是查看源码,也就是getClass(); 的源码,下面的截图就是我查询到的源码. Class Object 类的介绍: 接着 点击其方法,找到个体Class() ,点击进去查找源码. 通过查询源码,我得知的是 getClass();运…
为了讲解这个问题,我们先来看一下下面的代码: package com.yonyou.test; import java.util.Date; class Test extends Date{ private static final long serialVersionUID = 1L; public static void main(String[] args) { new Test().print(); } public void print(){ System.out.println("当…
在比较两个类时,常见有两种做法,一种是x.getClass() == y; 一种是x instanceof y,下面我们来比较这两种做法的区别. getClass()返回一个对象所属的类 public static void main(String[] args) { Hero h1 = new Hero(null,10,2); Hero h2 = new Hero("zhang",10,2); Superman s1 = new Superman("zhang")…
博主在研究java反射这一章节时,曾被三个方法困扰多时,.class..getClass().Class.Forname(),先上代码 这是类A package cn.yonyong.net.tcp.reflection; public class A { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.na…
1.对Class类的理解:Class类包含了类的信息,如构造方法.方法.属性,可用于反射.以下是所有方法 2.获取Class类对象的几种方法: Test test = new Test(); (1).test.getClass(); 在运行时确定,所以运行实例才是该类对象.super.getClass()不能获得父类的类对象,仍然是当前类对象. 获得父类类对象: test.getClass().getSuperclass()       class Father{   public void s…
例如: class A{} public class B extends A{ public void test(){ System.out.println(super.getClass().getName()); } publis static void main(String[] args){ new B().test(); //得到的输出结果为B,而不是A //可以通过this.getClass.getSuperclass().getName()获取父类类名(java的反射机制) } }…