1.this指针只在类的成员函数中使用,当类的成员函数需要用到自己的指针时就要用到this指针。但静态函数不能使用this关键字,其解释是:因为this是个引用,哪个对象调用方法就引用哪个对象。 而静态方法有可能不是被对象调用的,this无从引用,也就是:静态方法是属于整个类的,this指的是当前的对象。比如:
class ExamThis
{
int ShowThis() //定义一个显示自己指针的成员函数。
{
printf(“This is my this pointer %x \n“, this);
}
};

2.this的另一个用途是调用当前对象的另一个构造函数 ;

3.在你的方法中的某个形参名与当前对象的某个成员有相同的名字,这时为了不至于混淆,你便需要明确使用this关键字来指明你要使用某个成员,使用方法是 “this.成员名” ,而不带this的那个便是形参。

4.this后加参数则调用的是当前类具有相同参数的构造函数
class Person{
public static void prt(String s){
System.out.println(s);
}
Person(){
prt(A Person.);
}
Person(String name){
prt(A person name is+name);
}
}
public class Chinese extends Person{
Chinese(){
super(); //调用父类构造函数(1)
prt(A chinese.); //(4)
}
Chinese(String name){
super(name); //调用父类具有相同形参的构造函数(2)
prt(his name is+name);
}
Chinese(String name,int age){
this(name); //调用当前类具有相同形参的构造函数(3)
prt(his age is+age);
}
public static void main(String[] args){
Chinese cn=new Chinese();
cn=new Chinese(kevin);
cn=new Chinese(kevin,22);
}
}

在构造函数中this用于限定被相同的名称隐藏的成员,例如:
class Employee{
public Employee(string name, string alias) {
this.name = name;
this.alias = alias;
}
}

将对象作为参数传递到其他方法时也要用this表达,例如:
CalcTax(this);

声明索引器时this更是不可或缺,例如:
public int this [int param]{
get { return array[param]; }
set { array[param] = value; }
}

static 静态方法 用法:
   通常,在一个类中定义一个方法为static,那就是说,无需本类的对象即可调用此方法。因为this是个引用,哪个对象调用方法就引用哪个对象。 静态方法是属于整个类的,this指的是对当前的对象d的引用。如下所示:
class Simple{
static void go(){
System.out.println(Go...);
}
}
public class Cal{
public static void main(String[] args){
Simple.go();
}
}
  调用一个静态方法就是“类名.方法名”,静态方法的使用很简单如上所示。一般来说,静态方法常常为应用程序中的其它类提供一些实用工具所用,在Java的类库中大量的静态方法正是出于此目的而定义的。

C++——继承时的this指针的更多相关文章

  1. C++使用继承时子对象的内存布局

    C++使用继承时子对象的内存布局 // */ // ]]>   C++使用继承时子对象的内存布局 Table of Contents 1 示例程序 2 对象的内存布局 1 示例程序 class ...

  2. C#构造函数在继承时必须要求与父类型构造函数入参相同怎么办?

    摘要 我们都知道,C#中,在类型继承时,由于构造子类必须先构造其父类型的内容,因此,必须子类型的构造函数中调用父类型的构造函数(无参数的不需要显式声明). 但是往往我们会出现,子类型本身的构造函数大于 ...

  3. JAVA继承时this和super关键字

    JAVA继承时this和super关键字 本文主要讨论在方法前使用this或super关键字时,编译器在什么地方查找对应的函数. 在子类中指定this关键字.首先在本类中查找,如果本类中找不到,再在父 ...

  4. JAVA中继承时方法的重载(overload)与重写/覆写(override)

    JAVA继承时方法的重载(overload)与重写/覆写(override) 重载-Override 函数的方法参数个数或类型不一致,称为方法的重载. 从含义上说,只要求参数的个数或参数的类型不一致就 ...

  5. Java继承时的初始化顺序

    Java程序在启动和运行时,需要首先完成初始化的工作.在涉及到继承.static成员变量等因素时,初始化的顺序就复杂起来.下面以一个例子说明继承时的Java初始化顺序. 例子: class Insec ...

  6. C++在单继承、多继承、虚继承时,构造函数、复制构造函数、赋值操作符、析构函数的执行顺序和执行内容

    一.本文目的与说明 1. 本文目的:理清在各种继承时,构造函数.复制构造函数.赋值操作符.析构函数的执行顺序和执行内容. 2. 说明:虽然复制构造函数属于构造函数的一种,有共同的地方,但是也具有一定的 ...

  7. c/c++ 继承与多态 继承时如何改变个别成员的访问属性

    问题1:若类B以private的方式继承类A,但还想让类A的某些个别成员,保持public或者protected的访问属性,这时应该怎么办? 使用using,去改变访问属性. #include < ...

  8. C++类有继承时,析构函数必须为虚函数

    C++类有继承时,析构函数必须为虚函数.如果不是虚函数,则使用时可能存在内在泄漏的问题. 假设我们有这样一种继承关系: 如果我们以这种方式创建对象: SubClass* pObj = new SubC ...

  9. Lombok 继承时应注意的点

    lombok项目的产生就是为了省去我们手动创建getter和setter等基本方法的麻烦,它能够在我们编译源码的时候自动帮我们生成getter和setter等方法.即它最终能够达到的效果是:在源码中没 ...

随机推荐

  1. 图解HTTP总结(8)——确认访问用户身份的认证

    Session 管理及 Cookie 应用 基于表单认证的标准规范尚未有定论,一般会使用Cookie来管理Session(会话). 基于表单认证本身是通过服务器端的Web应用,将客户端发送过来的用户I ...

  2. python-生成器单线程并发(简单案例)

    #!/usr/local/bin/python3 # -*- coding:utf-8 -*- import time # ----------示例---------- def consumer(na ...

  3. Scrapy进阶

    当我们使用scrapy框架爬取网站的时候,我们会有一个入口的url,一个名为start_urls,我们爬取的第一个网页是从这一开始的. 需求: 现在我们有一个这样的需求,比如说我们对起始的URL有一个 ...

  4. python2.7入门---列表(List)

        序列是Python中最基本的数据结构.序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推.Python有6个序列的内置类型,但最常见的是列表和元组. ...

  5. 再谈js传值和传址

    js的传值和传址还是真绕,前回文说道 1.值类型是传值的 2.对象和数组是传址的 这两点通过例子的到了证实 然而还有一种情况没有讨论 即 函数的参数的传值和传址 通过实验,在函数中用一个新对象去覆盖传 ...

  6. 7.Mongodb复制(副本集)

    1.复制 什么是复制 复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性,并可以保证数据的安全性 复制还允许从硬件故障和服务中断中恢复数据 为什么要复制 数据备份 数据灾难恢复 ...

  7. Java:详解内部类

    可以将一个类的定义放在另一个类的定义内部,这就是内部类. 内部类是一个非常有用的特性但又比较难理解使用的特性(鄙人到现在都没有怎么使用过内部类,对内部类也只是略知一二). 第一次见面 内部类我们从外面 ...

  8. golang 小知识点记录

    获取url中的参数及输出到页面的几种方式 func SayHello(w http.ResponseWriter, req *http.Request) { req.Method //获取url的方法 ...

  9. 【jQuery】 Ajax

    [jQuery] Ajax $.ajax({ type: "Post", // 发包方式 cache: false, // 是否缓存 contentType: "appl ...

  10. TortoiseHg 学习笔记一

    因项目需要频繁的提交.合并代码,前段时间别人在我笔记本上装了个TortoiseHg,我不怎么会用 现在学习一下,目前没时间写太多东西,未完待续 记录一下查看的文章 http://jingyan.bai ...