派生类调用基类的构造函数,里面的THIS指针的疑问!

派生类调用基类的构造函数,里面的THIS指针的疑问!,第1张

看了你的大概意思,理解上是可以的。

函数里的theAppm_pCurrentWinApp返回的是什么? 是theApp自己还是基类的对象

它返回的就是theApp的,也就是派生类对象的地址。

其实派生类对象中就有基类部分。

那么基类构造函数里的this是基类的临时对象还是派生类的对象theApp,是派生类对象的地址指针this,不是基类的。调用基类的构造函数,就是对派生类继承基类的部分的数据进行赋值。

java中如何实现构造方法的调用

class A {

public A(){}

public A(String a亥{}

public A(String a,String b){

this();

}

public A(String a,String b,String c){

this(a,b);

}

不知道你是不是想问的是这个。构造方法调用构造方法的话,可以采用“this”关键字来实现。

}

c++在主函数里,怎么调用构造函数和成员函数

如果你要构造一个自定义类的对象时,可以使用“类型构造 *** 作符”。这将导致编译器为你调用构造函数。

比如你写了一个类,叫BaseItem显然你可以这样定义一个BaseItem对象:

BaseItem aItem; 调用默认构造函数;

你还可以这样定义一个BaseItem对象:

BaseItem aItem = BaseItem(); 调用默认构造函数。这里"()"表示“类型构造 *** 作符”,

用来实例化一个对象

假如你的构攻函数接受一个string对象作为参数,你还可以这样定义BaseItem:

BaseItem aItem("This is a base item"); 这会使编译器为你调用相应的构造函数。

ok,上面的都明白了嘛?下面再开始讲类的构造函数和成员函数有什么区别。

(非静态)成员函数是通过对象/指向对象的指针/指向对象的引用来调用的。你只能通过这3种方式来调用一个成员函数。那么很显然,实质上无论如何要调用成员函数都必须通过对象。

比如BaseItem里面有一个成员函数叫memfunc,那么你可以这样调用它:

aItemmemfunc(parameters);

而构造函数却是用来构造对象的。在对象还没形成之前,你怎么能够通过对象去调用函数?所以你无法通过对象去调用构造函数。

java中怎么在普通方法中调用构造方法

直接new 比如说,我new 一个时间的Date(); 那里面是可以传好多种的类型参数,那都是它的构造方法。

5在一个构造方法内可以调用另一个构造方法吗》如果可以,如何调用?

可以调用的,如果是调用本类中直接使用this关键字如:

this(); 就表示调用无参构造方法

this("bobo"); 就表示调用带一个String类型的构造方法

如果调用父类的构造方法使用super关键字,用法和this相同

构造方法可以调用本类的其他方法吗

可以的,它可以调用本类的私有属性,那为什么不可以调用本类的其它方法呢?而且试过了,的确可以调用。

public class Person {

private String name = "aa";

public Person(){

setName("dsd");

}

public void setName(String name) {

thisname = name;

}

public static void main(String args[]){

Person p=new Person();

Systemoutprintln(pgetName());

}

}

构造方法如何调用构造方法

在构造方法的第一行用 this(); 调用其他的构造方法(根据参数)

java中构造函数之间的调用是什么意思

来自新浪微博,给你详细的说明一下this

的用法。

Java关键字this只能用于方法方法体内。当一个对象创建后,Java虚拟机(JVM)就会给这个对象分配一个引用自身的指针,这个指针的名字就是 this。因此,this只能在类中的非静态方法中使用,静态方法和静态的代码块中绝对不能出现this,这在“Java关键字static、final 使用总结”一文中给出了明确解释。并且this只和特定的对象关联,而不和类关联,同一个类的不同对象有不同的this。

package test;

public class ThisTest {

private int i=0;

第一个构造器:有一个int型形参

ThisTest(int i){

thisi=i+1;此时this表示引用成员变量i,而非函数参数i

Systemoutprintln("Int constructor i——thisi: "+i+"——"+thisi);

Systemoutprintln("i-1:"+(i-1)+"thisi+1:"+(thisi+1));

从两个输出结果充分证明了i和thisi是不一样的!

}

第二个构造器:有一个String型形参

ThisTest(String s){

Systemoutprintln("String constructor: "+s);

}

第三个构造器:有一个int型形参和一个String型形参

ThisTest(int i,String s){

this(s);this调用第二个构造器

this(i);

thisi=i++;this以引用该类的成员变量

Systemoutprintln("Int constructor: "+i+"/n"+"String constructor: "+s);

}

public ThisTest increment(){

thisi++;

return this;返回的是当前的对象,该对象属于(ThisTest)

}

public static void main(String[] args){

ThisTest tt0=new ThisTest(10);

ThisTest tt1=new ThisTest("ok");

ThisTest tt2=new ThisTest(20,"ok again!");

Systemoutprintln(tt0increment()increment()increment()i);

tt0increment()返回一个在tt0基础上i++的T>>

一个内部类中如何调用构造方法

构造方式只有在new对象的时候被调用。它是无法用对象去调用的!穿 也就是说你想在内部类实现外部类或者的构造方法被构造,呢只有创建该类的对象了。

在Java中如何在主函数中调用一个类的构造函数

是的 如果你有一个类的名字叫Name:则

Name o = new Name();调用空参的构造函数

Name o = new Name("aa");调用需要传回一个字符参数的构造函数,当然你得在Name类中定义这样一个构造函数

java里属性的调用用到了构造方法,那么方法的调用用到构造方法没有 如果用到了那是怎么显示的? 100分

构造方法是创建对象时用的,调用属性和方法是用对象调用的,你的说法我看不懂,“java里属性的调用用到了构造方法”是什么意思

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/12175658.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存