java構造函數this
㈠ java中一般方法里的this是代表調用本方法的對象,但是構造方法里的this代表的是什麼呢。
this代表你正在構造的對象。
publicclassTest{
publicTest(){
System.out.println(this.toString());
}
publicstaticvoidmain(String[]args){
Testobj=newTest();
System.out.println(obj.toString());
}
}
輸出的兩個字元串相同(後面的數字是對象地址),說明this和obj是同一個對象。
這里this就是正在構建的CommunicationDemo的對象,作為參數傳給Thread的構造函數。
內幕是:java對象的建立其實是在構造函數開始執行之前,就是說構造函數執行的時候,被構造的對象其實已經存在了,所以構造函數中可以用this引用當前被構造的對象進行處理(比如 this.name=「Jack」)。
㈡ 對於java中this關鍵字的理解
this關鍵字可以簡單的理解為,誰調用this所在的方法,this就是誰。
類的構造函數與getter、setter方法常用到this關鍵字(JavaBean)
JavaBean是一種可重用的Java組件,它可以被Applet、Servlet、SP等Java應用程序調用.也可以可視化地被Java開發工具使用。它包含屬性(Properties)、方法(Methods)、事件(Events)等特性。
public class Person {
//==========靜態屬性===========
//--想學編程的可以來我這看看----
private String name; //姓名
private int age; //年齡
private String gender; //性別
//==========動態行為===========
public void readBook(String book) {
System.out.println("reading " + book);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;//this.name就是上面的private String name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
}
官方定義
this 是自身的一個對象,代表對象本身,可以理解為:指向對象本身的一個指針。
this 的用法在 Java 中大體可以分為3種:
1.普通的直接引用
這種就不用講了,this 相當於是指向當前對象本身。
2.形參與成員名字重名,用 this 來區分:
class Person {
private int age = 10;
public Person(){
System.out.println("初始化年齡:"+age);}
public int GetAge(int age){
this.age = age;
return this.age;
}
}
public class test1 {
public static void main(String[] args) {
Person Harry = new Person();
System.out.println("Harry's age is "+Harry.GetAge(12));
}
}
希望對您有所幫助!~
㈢ java 中的this關鍵字的幾種用法
當成員變數和局部變數重名時,在方法中使用this時,表示的是該方法所在類中的成員變數。(this是當前對象自己)
代碼中的showtest(this),這里的this就是把當前實例化的p傳給了showtest()方法,從而就運行了。
㈣ java 構造函數 this
你先要去弄懂this的三種用法:
有三種用法:
1、表示對當前對象的引用!
2、表示用類的成員變數,而非函數參數,注意在函數參數和成員變數同名是進行區分!其實這是第一種用法的特例,比較常用,所以那出來強調一下。
3、用於在構造方法中引用滿足指定參數類型的構造器(其實也就是構造方法)。但是這里必須非常注意:只能引用一個構造方法且必須位於開始!
還有就是注意:this不能用在static方法中!
你的實例中 在類B的構造方法中
public B(A a)
通過方法重載 帶了A的一個實例 通過this.a=a;
給類B中的A對象賦值
在類A中 b=new B(this);
因為B b=new B(new a());
而this表示當前類的實例
㈤ 關於Java中構造方法中使用this的問題,新手求大神解答
this 就是指的當前對象 也就是 你例子中 Person 的對象 this(name) 相當於調用了public Person(String name) 構造函數
你應該知道 super 指的是當前對象的父類對象 你經常在 當前對象的構造函數中看到 super();
這個就是在調用 父類對象的 空函數構造方法, this() 當然就是調用當前對象的空函數構造方法了
this(name) 自然就是調用當前對象帶一個參數的構造方法
㈥ java中this的用法
java中this有兩種用法:
1、代表當前類
public class Dog{
private String name;
private float age;
public setName(String name){
this.name = name;
}
.......
}
這里的this就代表的當前的這個Dog類。this.name可以理解為dog.name,只是理解,不是等於。
2、在構造函數中的使用
public class Dog{
private String name;
private int age;
//有一個參數的構造函數
public Dog(String name){
this.name = name;
}
public Dog(String name,int age){
this.name = name;
this.age = age;
}
//這個無參構造方法里調用的有兩個參數的構造方法,這個也就是this的第二種用法了!
public Dog(){
this("nihao",20);
}
}
㈦ java 構造函數中this的意思
來自新浪微博,給你詳細的說明一下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){
this.i=i+1;//此時this表示引用成員變數i,而非函數參數i
System.out.println("Int constructor i——this.i: "+i+"——"+this.i);
System.out.println("i-1:"+(i-1)+"this.i+1:"+(this.i+1));
//從兩個輸出結果充分證明了i和this.i是不一樣的!
}
// 第二個構造器:有一個String型形參
ThisTest(String s){
System.out.println("String constructor: "+s);
}
// 第三個構造器:有一個int型形參和一個String型形參
ThisTest(int i,String s){
this(s);//this調用第二個構造器
//this(i);
this.i=i++;//this以引用該類的成員變數
System.out.println("Int constructor: "+i+"/n"+"String constructor: "+s);
}
public ThisTest increment(){
this.i++;
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!");
System.out.println(tt0.increment().increment().increment().i);
//tt0.increment()返回一個在tt0基礎上i++的ThisTest對象,
//接著又返回在上面返回的對象基礎上i++的ThisTest對象!
}
}
運行結果:
Int constructor i——this.i: 10——11
String constructor: ok
String constructor: ok again!
Int constructor: 21
String constructor: ok again!
14
細節問題注釋已經寫的比較清楚了,這里不在贅述,只是總結一下,其實this主要要三種用法:
1、表示對當前對象的引用!
2、表示用類的成員變數,而非函數參數,注意在函數參數和成員變數同名是進行區分!其實這是第一種用法的特例,比較常用,所以那出來強調一下。
3、用於在構造方法中引用滿足指定參數類型的構造器(其實也就是構造方法)。但是這里必須非常注意:只能引用一個構造方法且必須位於開始!
還有就是注意:this不能用在static方法中!所以甚至有人給static方法的定義就是:沒有this的方法!雖然誇張,但是卻充分說明this不能在static方法中使用!
說明在什麼情況下需要用到this:
第一、通過this調用另一個構造方法,用發是this(參數列表),這個僅僅在類的構造方法中,別的地方不能這么用。
第二、函數參數或者函數中的局部變數和成員變數同名的情況下,成員變數被屏蔽,此時要訪問成員變數則需要用「this.成員變數名」的方式來引用成員變數。當然,在沒有同名的情況下,可以直接用成員變數的名字,而不用this,用了也不為錯,呵呵。
第三、在函數中,需要引用該函所屬類的當前對象時候,直接用this。
其實這些用法總結都是從對「this是指向對象本身的一個指針」這句話的更深入的理解而來的,死記不然容易忘記而且容易搞錯,要理解!
㈧ Java裡面的this關鍵字是什麼意思
this關鍵字可以簡單的理解為,誰調用this所在的方法,this就是誰。
類的構造函數與getter、setter方法常用到this關鍵字(JavaBean)
JavaBean是一種可重用的Java組件,它可以被Applet、Servlet、SP等Java應用程序調用.也可以可視化地被Java開發工具使用。它包含屬性(Properties)、方法(Methods)、事件(Events)等特性。
public class Person {
//==========靜態屬性===========
//--想學編程的可以來我這看看----
private String name; //姓名
private int age; //年齡
private String gender; //性別
//==========動態行為===========
public void readBook(String book) {
System.out.println("reading " + book);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;//this.name就是上面的private String name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
}
官方定義
this 是自身的一個對象,代表對象本身,可以理解為:指向對象本身的一個指針。
this 的用法在 Java 中大體可以分為3種:
1.普通的直接引用
這種就不用講了,this 相當於是指向當前對象本身。
2.形參與成員名字重名,用 this 來區分:
class Person {
private int age = 10;
public Person(){
System.out.println("初始化年齡:"+age);}
public int GetAge(int age){
this.age = age;
return this.age;
}
}
public class test1 {
public static void main(String[] args) {
Person Harry = new Person();
System.out.println("Harry's age is "+Harry.GetAge(12));
}
}
希望對您有所幫助!~