面向对象this关键字的内存图解

this:哪个对象调用方法,this就代表哪个对象

案例1:

//定义老师类
class Teacher {
    private String name;
    private int age;

    public String getName(){
        return name;
        //return this.name;这里隐含了this,
        //因为局部没有name变量,所以不需要写this
    }

    public int getAge(){
        return age;
    }

    public void setName(String name){
        this.name = name;
    }

    public void setAge(int age){
        this.age = age;
    }

}

class Test{
    public static void main(String[] args){
        Teacher t = new Teacher();
        t.setName("张三");
        t.setAge(23);
        System.out.println(t.getName() + "---" + t.getAge());

        Teacher t2 = new Teacher();
        t2.setName("李四");
        t2.setAge(30);
        System.out.println(t2.getName() + "---" + t2.getAge());
    }
}

输出:

张三---23
李四---30
时间: 2024-10-05 22:58:11

面向对象this关键字的内存图解的相关文章

面向对象-this关键字的内存图解

1 /* 2 标准的代码改进版 3 4 this:哪个对象调用那个方法,this就代表那个对象 5 */ 6 class Student { 7 private String name; 8 private int age; 9 10 public String getName() { 11 return name; //这里其实是隐含了this 12 } 13 14 public void setName(String name) { 15 this.name = name; 16 } 17

Java中this、static关键字的内存图解

Java中的关键字有很多,abstract  default  goto*  null  switch  boolean  do  if  package  nchronzed  break  double  implements  private  this  byte  else  import  protected  throw  throws  case  extends  instanceof  public  transient  catch  false  int  return 

3.03_面向对象(static关键字及内存图)

* A:案例演示     * 通过一个案例引入static关键字.     * 人类:Person.每个人都有国籍,中国. * B:画图演示     * 带有static的内存图 lass Demo1_Static { public static void main(String[] args) { /*Person p1 = new Person();  //创建对象 p1.name = "苍老师";                   //调用姓名属性并赋值 p1.country

面向对象编程(十)——继承之Super关键字及内存分析

阅读目录 Super关键字画内存分析图了解程序执行的整个过程 Super关键字 在JAVA类中使用super来引用父类的成分,用this来引用当前对象,如果一个类从另外一个类继承,我们new这个子类的实例对象的时候,这个子类对象里面会有一个父类对象.怎么去引用里面的父类对象呢?使用super来引用,this指的是当前对象的引用,super是当前对象里面的父对象的引用. super是直接父类对象的引用.可以通过super来访问父类中被子类覆盖的方法或属性. (注意和this的区别:this是当前对

JAVA面向对象-----super关键字

JAVA面向对象-–super关键字 1:定义Father(父类)类 1:成员变量int x=1; 2:构造方法无参的和有参的,有输出语句 2:定义Son类extends Father类 1:成员变量int y=1; 2:构造方法无参和有参的.有输出语句this.y=y+x; 3:创建Son类对象 Son son=new Son(3); System.out.println(son.y); //4 class Father { int x = 1; Father() { System.out.p

10 面向对象(package关键字的概述及作用)

10.01_面向对象(package关键字的概述及作用) A:为什么要有包 *开发时有很多类,如果放在一个文件夹中不方便管理,而且容易重复 将字节码(.class)进行分类存放 包其实就是文件夹 B:包的概述 举例: 学生:增加,删除,修改,查询 老师:增加,删除,修改,查询 - 方案1:按照功能分 com.heima.add AddStudent AddTeacher com.heima.delete DeleteStudent DeleteTeacher com.heima.update U

面向对象this关键字和概述和应用

面向对象this关键字和概述和应用 1 package thisdemo; 2 3 /** 4 * 面向对象this关键字和概述和应用 5 * 6 */ 7 8 //定义老师类 9 class Teacher { 10 private String name; 11 private int age; 12 13 //设置姓名值 14 public void setName(String n){ 15 name = n; 16 } 17 18 //获取姓名值 19 public String ge

volatile关键字与内存可见性

前言 首先,我们使用多线程的目的在于提高程序的效率,但是如果使用不当,不仅不能提高效率,反而会使程序的性能更低,因为多线程涉及到线程之间的调度.CPU上下文的切换以及包括线程的创建.销毁和同步等等,开销比单线程大,因此需谨慎使用多线程. 在jdk1.5以后,提供了一个强大的java.util.current包,这个包中提供了大量的应用于线程的工具类. 下面开始介绍volatile关键字和内存可见性,虽然volatile是在jdk1.5之前就有的,但还是想放在这里讲一下. 举例说明 首先,我们先看

PHP中面向对象的关键字

php面向对象中常用的关键字有final.static.const (1)final: 1,final不能修饰成员属性 2,final只能修饰类和方法 作用: 使用final修饰的类不能被子类继承 使用final修饰的方法不能被子类去覆盖 用来限制类不被继承,方法不能被覆盖就使用final(2.)static: 1,使用static可以修饰成员属性和成员方法,不能修饰类 2,用static修饰的成员属性,可以被同一个类的所有对象共享 3,静态的数据是存在内存中的数据段中(初始化静态段) 4,静态