首页 > 编程语言 >Java中this关键字的作用

Java中this关键字的作用

时间:2023-01-29 19:22:36浏览次数:33  
标签:Java name 构造方法 Person age 关键字 public 作用 String

this关键字的作用

 

1.表示类中的属性

2.可以使用this调用本类的构造方法

3.this表示当前对象

 

1.1 this 调用本类中的属性

class Person {

private String name; // 姓名

private int age; // 年龄

public Person(String name,int age){ // 通过构造赋值

this.name = name ; // 明确表示为类中的name属性赋值

this.age = age ; // 明确表示为类中的age属性赋值

}

public String getInfo() { // 取得信息

return "姓名:" + name + ",年龄:" + age;

}

}

public class ThisDemo02 {

public static void main(String[] args) {

Person per1 = new Person("张三",33) ; // 调用构造实例化对象

System.out.println(per1.getInfo()) ; // 取得信息

}

}

 

2.1 使用this调用构造方法

避免代码重复,让构造方法之间互相调用,使用this(若干参数)的形式完成.

如果一个类中有多个构造方法的话,也可以利用this关键字互相调用。

假设现在要求不管类中有多少个构造方法,只要对象一被实例化,就必须打印一行“新对象实例化”的信息出来,很明显,此时如果在各个构造方法中编写此输出语句肯定不合适,所以此时就可以利用this的概念完成。

package demo0309;

public class Test1 {

public static void main(String[] args) {

Person p=new Person("呵呵呵",12); //调用有参构造

System.out.println(p.getInfo()); //输出信息

 

}

}

class Person{

private String name; //私有化姓名

private int age; //私有化年龄

public Person() { //无参构造

System.out.println("一个新的Person对象被实例化! ");

}

public Person(String name,int age) {

this(); //此处调用Person类中的无参构造方法

this.name=name;

this.age=age;

}

public String getInfo() { //取得信息

return "姓名:  "+name+" 年龄 :"+age;

}

}

使用this调用构造方法必须也只能放在构造方法的第一行。

 

 

3.1this表示当前对象在java中当前对象就是指当前正在调用类中方法的对象。

class Person {

public String getInfo() {

System.out.println("Person类 --> " + this); // 直接打印this

return null ; // 此处返回null,为的是让语法不出错

}

}

public class ThisDemo06 {

public static void main(String[] args) {

Person per1 = new Person() ;

Person per2 = new Person() ;

System.out.println("MAIN方法 --> " + per1); // 直接打印对象

per1.getInfo() ;

System.out.println("--------------------------") ;

System.out.println("MAIN方法 --> " + per2); // 直接打印对象

per2.getInfo() ;

}

}

静态方法中不能使用this关键字

 

 

 

 

 

 

标签:Java,name,构造方法,Person,age,关键字,public,作用,String
From: https://www.cnblogs.com/YZTL/p/17073644.html

相关文章

  • Java数组
    Java数组数组是相同类型数据的有序集合每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们。数组的声明必须声明数组变量才能在程序中使用。dataTy......
  • Java反射之Field用法
    参考:https://www.cnblogs.com/ldq2016/p/6834643.htmlhttps://www.cnblogs.com/cuglkb/p/8463039.html工具类:publicclassObjectUtils{staticpublicfinalBo......
  • vue3和百度地图关键字检索 定位 点击定位
    效果图在index.html中引入百度地图开放平台  去申请你的ak非常的简单可以自己百度一下<!--这个用官网给的有好多警告更具百度的把https://api.map.baidu.com......
  • ORM哪家强?java,c#,php,python,go 逐一对比, 网友直呼:全面客观
    前言最近一段时间,我使用​​golang​​开发了一个新的​​ORM​​库。为了让这个库更好用,我比较研究了各语言的主流​​ORM​​库,发现有一些语言的​​ORM​​库确实很好用,......
  • [JPA错误]javax.persistence.EntityNotFoundException: Unable to find xxx
    解决方法:第一种:由于后来加上的实体、对象在之前的数据没有关联上,所以造成脏数据、故根本的解决方法,就是将之前的测试数据删除,重新添加数据就行了第二种:2.如果子表中......
  • 通过执行方法来获得并运行一个 JavaScript 文件
    通过执行方法来获得并运行一个JavaScript文件通过AJAX请求来获得并运行一个JavaScript文件定义和用法getScript()方法通过HTTPGET请求载入并执行JavaScript......
  • Java特性和优势
    Java特性和优势简单性面向对象可移植性高性能分布式动态性多线程安全性健壮性......
  • DestoryJavaVM停止HotSpotVM的步骤
    1、一直等待,直到只有一个非守护的线程执行,注意此时HotSpotVM仍然可用;2、调用java.lang.Shutdown.shutdown()方法,它会调用Java上的shutdown钩子方法,如果finalization-on-exi......
  • java多线程基础小白指南--synchronized同步块
    sychronized是java多线程非常关键的一个知识点,这篇博客将从synchronized几个用法以及代码来学习。sychronized的作用是能够保证同一时间只有一个线程来运行这块代码,达到并......
  • JavaScript 文件处理
    JavaScript可以通过文件API实现许多常见的文件处理任务,下面是一些例子:1、读取文件内容:使用FileReaderAPI可以将文件读取为ArrayBuffer、Blob、DataURL等格式,并进......