`
wang_2011_ying
  • 浏览: 143894 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

访问子类对象的实例变量

 
阅读更多
class Base{
private int i = 2;
public Base(){
System.out.println(this.getClass());
this.display();
}
public void display(){
System.out.println("Base中的方法"+i);
}
}

class Derived extends Base{
private int i = 22;
public Derived(){
i = 222;
}
public void display(){
System.out.println("Derived中的方法"+i);
}
}
public class Test {

public static void main(String[] args){
new Derived(); }
}
/**************/
输出结果:
class crazy.chapter2.object.Derived
Derived中的方法0

构造器只是负责对java对象实例变量执行初始化(赋值),在执行构造器之前,该对象所占的内存已经被分配下来,这些内存里值都是空值——对于基本类型的变量,默认值都是0或false;对于引用类型的变量,默认值都是null。当程序调用粗体部分时,系统会先为Derived对象分配2块内存空间,分别用来存放Derived对象的两个i实例变量,一个属于Base,另一个属于Derived,此时这两个实例变量都为0。接下来,在执行Derived类构造器之前,首先会执行Base类的构造器。由于Base构造器是在Derived中执行的,所以Base构造器中的this指的是Derived类。this.display()就是调用Derived类中的display方法
分享到:
评论

相关推荐

    Java对象与内存控制

    从内存运行的角度分析面向对象中类、对象的细节,包括Java对类变量、实例变量的初始化细节,内存中子类实例的实例变量的存储以及程序如何访问它们,父、子类的类变量的存储以及程序如何访问它们。

    面对对象的四大特性

    和实例变量,并且类可以修改或增加新的方法使之更合适特殊的需要 封装 是把过程和数据包围起来,对数据的访问只能通过已定义的界面,面向对象计算始于 这个基本概念,即实现世界可以被描绘成一系列完成自治,...

    java视频教程(52课)上 基本概念 面向对象基础 语法 接口 包和访问权限

    19_子类实例化过程.mp4 20_函数的复写.mp4 21_对象的转型.mp4 22_面向对象应用(一).mp4 23_抽象类和抽象函数(1).mp4 23_抽象类和抽象函数.mp4 25_包和访问权限(一).mp4 26_包和访问权限(二).mp4 27_包和访问权限...

    Java 语言基础 —— 非常符合中国人习惯的Java基础教程手册

    生成实例的过程叫做把"一个对象实例化"。一个实例化 的对象实际上是由若干个实例变量和实例方法组成的。当你创建出一个类的实例时,系统将 为实例变量指定内存,然后你就可以利用实例方法去做某些事情。 2.2.5 ...

    Java基础知识总结(总共六章)

    变量,直接调用该对象的方法;只是用一次的对象; 2. 继承:可以复用代码,缩短开发周期,节约成本 就是扩展已有类的功能,在继承中分为子类和父类;父类有时候又称为 超类,子类有时候成为派生类;extends 继承类...

    Java面试题超级全.zip

    实例变量必须依存于某一实例,需要先创建对象然后通过对象才能访问到它。静态变量可以实现让多个对象共享内存。 ``` ## 75.如何将一个 java 对象序列化到文件里? ``` 在 java 中能够被序列化的类必须先实现 ...

    【04-面向对象(上)】

    •实例变量与实例共存亡;类变量与类本身共存亡。 局部变量的运行机制 •局部变量仅在方法内有效。 •当方法执行完成时,局部变量便会自动销毁。 封装 •理解封装:封装是面向对象的三大特征之一。 •...

    《java面向对象程序设计-继承和多态》教案.doc

    面向对象的概念和 Java 实现-2 回顾 类是具有相同属性和行为的一组对象的 集合 , 对象是类的实例 封装是隐藏对象实现细节的过程,以便不让用户看到实现的细节 类可用Class 来定义,类的变量和方法可被该类的实例访问,...

    JAVA类的方法调用和变量

    JAVA类的方法调用和变量 一、类的分类: 1、普通类 2、抽象类(含有抽象方法的类) ...4、静态方法(可以不实例话对象,通过类名.方法就可以调用的方法) 5、抽象方法(只有方法的签名而没有实现的方法)

    【05-面向对象(下)】

    •对一个final变量来说,不管它是类变量、实例变量,还是局部变量,只要该变量满足3个条件,这个final变量就 不再是一个变量,而是相当于一个直接量。  –使用final修饰符修饰;  –在定义该final变量时指定...

    Java并发学习-AtomicIntegerFieldUpdater字段原子更新类.docx

    只能是实例变量,不能是类变量,也就是说不能加static关键字。 只能是可修改变量,不能使final变量,因为final的语义就是不可修改。 对于AtomicIntegerFieldUpdater和AtomicLongFieldUpdater只能修改int/long...

    ado连接池实例

    每一新子类的TThread对象的实例是一个新的线程。从TThread派生的多线程实例可以构成Delphi的多线程应用程序。  当一个应用程序运行时,应用程序就被载入内存准备执行。此时,它成为包含一个或多个线程的进程,每个...

    史上最全Java面试题目大集合

    对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。 4、String 和StringBuffer的区别 JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符...

    Ruby 之 class 中的 private、 protected、public

    对象实例变量(@)的访问权限就是 private。 代码如下: class AccessTest def test return “test private” end def test_other(other) “other object ”+ other.test end end t1 = AccessTest.new t2 = AccessTest...

    11.类和对象1

    类是对象的模板,而对象是类的实例实例属性名如果以__开头,就变成了一个私有变量只有在类的内部才可以访问类的私有变量,外部不能访问在Python中,一个子类只能有

    软件测试(Test)面试题集锦

    派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。 (3)封装: 封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即...

    Java笔试题大汇总

    子类不能继承父类中访问权限为private的成员变量和方法,子类可以重写父类的方法,及命名与父类同名的成员变量。 子类通过隐藏父类的成员变量和重写父类的方法,把父类的状态和行为改变为自身的状态和行为。注意:...

    java考试题大总结

    1、面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面...对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。

    JAVA程序员笔试面试题汇总及答案

    派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。 (3)封装: 封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即...

Global site tag (gtag.js) - Google Analytics