(第五章)java面向对象之this的作用总结

this关键字总是指向调用该方法的对象。

this可以代表任何对象,当this出现在某个方法体中时,它所代表的对象是不确定的,但它的类型是确定的,它所代表的对象只能是当前类的(在那个类中就是那个类),只有当这

个方法被调用时,它所代表的对象才被确定下来。谁在调用这个方法,this就代表谁。

〉在构造器中引用该构造器正在初始化的数据

〉在方法中引用调用该方法的对象

this关键字最大的作用就是让类中的一个方法,访问该类中另一个方法或实例变量。

public class Dog
{
    public void jump(){
        system.out.println("正在执行jump()方法");
    }

    public void run(){
        //this 引用调用run()方法中的对象        //this代表run()对象        this.jump();
    }
}

this在构造器中代表该构造器正在初始化的对象。

public class Test
{
    //定义一个foo成员变量
    public int foo;
    public ThisInContructor()
    {
        //在构造器中定义一个foo局部变量
        int foo = 0;
        //使用this代表该构造器正在初始化的对象
        //下面的代码会将该构造器正在初始化的对象的foo成员变量设为6
        this.foo = 6;
    }
     public static void main(String[] args)
    {
        //输出6
        System.out.println(new ThisInContructor().foo)
    }
}

如果方法中有个局部变量和成员变量同名,而程序又需要访问这个被覆盖的成员变量,则必须使用this。

public class Test
{
    private String name = "李刚";
    private static double price = 78.0;
    public static void main(String[] args)
    {
        int price = 65;
        //输出65,局部变量覆盖了成员变量
        System.out.println(price);
        //输出78.0
        System.out.println(Test.price);
        //运行info()方法
        new Test.info();
    }
    public void info()
    {
        String name = "小明";
        //输出小明
        System.out.println(name);
        //使用this来作为name变量的限定
        //输出,李刚
        System.out.println(this.name);
    }
}
时间: 2024-10-14 18:33:11

(第五章)java面向对象之this的作用总结的相关文章

java第五章:面向对象(oop)之三大特性

封装(encapsolution) 程序设计要追求"高内聚,低耦合":高内聚就是类的内部数据操作细节自己完成,不允许外界干预:低耦合就是:仅暴露少量的方法给外界使用: 广义的封装就像包装: 权限修饰符:public ,protected,默认(什么都不写),private; class类的修饰符只能是public或者默认: 属性,方法,构造器可以使任意上述四种: 修饰符的访问权限 同类   同包  不同包的子类 不同包的其他类 public 是 是 是 是 protected 是 是

java第五章:面向对象(oop)三大特性之多态

多态(把代码写活,提高代码的扩展性和可维护性) 生活中的多态:同一种物质,因不同的环境展现不同的形态(水:气态,液态,固态/碳12:金刚石,石墨) 程序中的多态:同一个"接口"因不同的实现,而执行不同的操作(就是在方法中把父类作为形式参数传入,调用的时候,传入子类的实例,最终执行的是子类中重写父类的方法) 多态一般结合方法重写.继承使用,父类引用指向子类: 多态实现步骤: 1.实现继承 2.编译时将父类作为形式参数类型传入(范围大一点,模糊一点) 3.运行时将子类new出的实例传入,最

java第五章:面向对象(oop)之 static关键字

java程序在执行过程中,类,对象以及它们成员加载.初始化的顺序如下: 1.首先加载要创建对象的类及其直接与间接父类. 2.在类被加载的同时会将静态成员进行加载,主要包括静态成员变量的初始化,静态语句块的执行,在加载时按代码的先后顺序进行. 3.需要的类加载完成后,开始创建对象,首先会加载非静态的成员,主要包括非静态成员变量的初始化,非静态语句块的执行,在加载时按代码的先后顺序进行. 4.最后执行构造器,构造器执行完毕,对象生成.上面四段话意思就是静态变量(全局变量)创建时间要早于new对象(成

java第五章:面向对象(oop)

方法重写/覆写(Override) 特点: 1一般发生在父子类间,子类重写父类中的方法,方法的返回值类型,方法名,形参列表都要与父类一样, 子类权限修饰符>=父类的权限修饰符 2.一旦重写了父类的方法,子类创建对象后,调用子类重写后的方法: [email protected]:重写的注解,标注当前方法为重写父类的方法,必须满足重写规则: 方法重载和重写的区别: 1.重载发生在同一个类中,主要提供同名不同参的方法:重写发生在父子类之间,主要为了结合多态使用,提高程序的扩展性和可维护性 2.重载,方

五、java面向对象编程_3

目录 十五.Object类 1.toString 2.equals 十六.对象转型(casting) 十七.动态绑定(多态) 十八.抽象类(abstract) 十九.final关键字 二十.接口 十五.Object类 Object类是所有java类的根基类 如果在类的声明中未使用extends关键字致命其基类,则默认基类为Object类,也就是说 public class Person {…}等价于public classPerson extends Object {…} 1.toString

第五章 Java运算符

Java运算符 一 分类 算术运算符 赋值运算符 比较运算符 逻辑运算符 条件运算符 二 算术运算符 算术运算符主要用于进行基本的算术运算,如加法.减法.乘法.除法等. Java 中常用的算术运算符: 其中,++ 和 -- 既可以出现在操作数的左边,也可以出现在右边,但结果是不同. 即: 例1: int a = 1; int b = ++a;//让a先执行自增,再将值赋值给b System.out.println(a); System.out.println(b); 运行结果均为2: 例2: i

第五章:面向对象(一)

概念: 面向对象思想将客观世界中的事物描述为对象,并通过抽象思维方法将需要解决的实际问题分解成人们易于理解的对象模型,然后通过这些对象模型来构建应用程序的功能. 对象:在生活中一切客观存在的事物都是对象,在java语言中,对象是程序员创建出来用于解决问题的数据. 类:类是对象的模板,用类创建的对象拥有类的属性和行为. 成员变量(属性):保持对象的数据. 成员方法(行为):对象完成某个功能. 声明:([]中内容为可选) 类的声明:[修饰符]  class  类名{   } 如:      publ

第五章:面向对象(上)

1.static成员不能直接访问没有static修饰的成员. static区分变量.方法属于类还是属于实例. 2.类默认自带一个无参数的构造器!  自己如果写构造器,系统就不会再提供构造器了. 3.方法要么属于类,要么属于实例对象. 4.java参数传递: 值的传递,值copy一份,不论copy的那份被如何修改,都不会影响原来的. 5.变量的划分: static修饰:分为 实例变量 和 类变量. 作用域:  成员变量 .局部变量. 6. 工厂模式.反射方式创建对象. 7.重载:方法 覆盖:子类与

《C++primer(第五版)》学习之路-第十五章:面向对象程序设计

[ 声明:版权所有,转载请标明出处,请勿用于商业用途.  联系信箱:[email protected]] 15.1 OOP:概述 1.面向对象程序设计的核心思想是数据抽象,继承和动态绑定.通过使用数据抽象,我们可以将类的接口与实现分离:使用继承,可以定义相似的类型并对其相似关系建模:使用动态绑定,可以在一定程度上忽略相似类型类型的区别,而以统一的方式使用它们的对象. 2.通过继承联系在一起的类构成一种层次关系.通常在层次关系的根部有一个基类,其他类则直接或间接地从基类继承而来,这些继承得到的类称