java實例方法this
A. 求教:java中,this的用法,請舉例...
java中的this:
java中的保留字this僅限於在構造函數,類的方法和類的實例中使用。
1) 在類的構造函數中出現的this作為一個值類型,它表示對正在構造的對象本身的引用
2)在類的方法中出現的this作為一個值類型,表示對調用該方法的對象的引用
3) 在結構的構造函數中出現的this作為一個變數類型,表示對正在構造的結構的引用
4) 在結構的方法中出現this作為一個變數類型,表示對調用該方法的結構的引用
除此之外,其他地方使用this保留字都是不合法的。在方法內部,this引用可以用於指向任何當前執行的對象。
例如:在一個叫做ChessPiece的類中,可以有個方法叫Move,它可能包含下列行:
if(this.position=piece.position)
result=false;
在這種情況下,this引用用來澄清是哪個position被引用了。this引用指向觸發方法的對象。所以如果下面這行用
於觸發方法,this引用指向firstshop:
firstshop.Move();
但是,如果另外一個對象用於觸發方法,this引用就指向它。所以,如果使用了下面的調用,Move方法中的this引
用就指向secondshop:
secondshop.Move();
經常地,this引用用於區分構造函數的參數和它們相對應的同名的實例變數。例如:一個叫做Account類的構造函數
如下所示:
public Account(string owner, long account, double initial)
{
name=owner;
acctNumber=account;
balance=initial;
}
在編寫這個構造函數時,我們特意為參數去了不同的名字來區分它們與實例變數name,accNumber,和balance。這個區分是任意的。構造函數分來可以用this引用寫成如下所示:(這用更容易讓人理解和接受)
public Account(string name, long acctNumber, double balance)
{
this.name=name;
this.acctNumber=acctNumber;
this.balance=balance;
}
在這個版本的構造函數(非靜態的構造函數是在創建類的對象的時候被自動調用的)中,this引用特別指向對象的實例變數。賦值語句右邊的變數指向形參。這個方法消除了為了變數取不同的但是等價的名字的需要。這種情況有事在其它方法中發生,但通常出現在構造函數中。
好好的理解下~!
B. java 的this的運用
在java中,this關鍵字有很多種用法。 在java中,這是一個引用當前對象的引用變數。
java this關鍵字的用法如下:
this關鍵字可用來引用當前類的實例變數。
this關鍵字可用於調用當前類方法(隱式)。
this()可以用來調用當前類的構造函數。
this關鍵字可作為調用方法中的參數傳遞。
this關鍵字可作為參數在構造函數調用中傳遞。
this關鍵字可用於從方法返回當前類的實例。
建議:如果你是java初學者,只學習 this 關鍵字的前三個用法就可以了。
更詳細可以查詢一些教程,例如:https://www.yii.com/java/this-keyword.html
C. Java中this的用法
this指直譯是「這個」,在java中指「當前的」。不管在哪裡,只要用到this,指的一定就是當前的這個對象。最常見的用法是在寫java bean中。比如下面的代碼
publicclassStudent{
privateStringname;
privateintage;
publicStudent(){}
publicStudent(Stringname,intage){
this();
this.setName(name);
this.age=age;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicintgetAge(){
returnthis.age;
}
}
上面的代碼是一個java bean。所謂的java bean就是一個類,這個類有一些屬性,方法只有這些屬性的Getter 或者Setter (從Object類繼承的方法不算在此列)。
這個bean有兩個屬性,在構造器中為屬性賦值的時候寫的this.setName(name).意思是調用當前你創建的這個對象的Setter給這個對象的屬性賦值。而setName裡面的this.name = name;這一句,等號之前的this.name表示當前對象的name,也就是在類裡面定義的private String name這個變數,而等號之後的name表示從外界調用這個方法時候傳進來的參數。所以這句話的意思就是將外界傳來的字元串變數的值賦給當前對象的name屬性。
那麼構造器第一行的this()是做什麼的呢?這句話是調用當前這個對象的無參構造,就是調用上面的public Student(){}這個構造器。在這段代碼里this()體現不出來什麼作用。但是我們知道構造器的作用是在構造對象的時候給屬性賦值的。如果上面個無參構造裡面寫一些賦值語句的話那麼這里就可以避免代碼的重復了。但是請注意,調用this()的時候一定要寫在該方法的第一行,否則會報錯。
另外,this關鍵字不能使用在有static關鍵字修飾的方法和代碼塊裡面。因為static是這個類的所有對象共用的,而this指的只是當前這個對象的「私人」的一些東西,在屬性上面就沖突了。
D. java 中的this關鍵字的幾種用法
當成員變數和局部變數重名時,在方法中使用this時,表示的是該方法所在類中的成員變數。(this是當前對象自己)
代碼中的showtest(this),這里的this就是把當前實例化的p傳給了showtest()方法,從而就運行了。
E. Java Eclipse 中 在類與方法調用中 (this)的用法
this表示類實例本身。
this的用法
1、表示對當前對象的引用!
public class A{
public A getA(){
return this;//表示獲取當前實例本身
}
}
2、表示類的成員變數,而非函數參數,注意在函數參數和成員變數同名是進行區分!
public class A{
privateint a = 0;//位置1
public A getA(int a){
this.a = a;//前面this.a表示 位置1 的a,賦值=號右側的表示參數a
}
}
3、用於在構造方法中引用滿足指定參數類型的構造器。
public class A{
public A(int a){
}
public A(){
this(1);//這里調用自身的構造函數public A(int a){
}
}
F. java中this的用法
1. this指當前對象。
當在一個類中要明確指出使用對象變數或函數時加上this引用。如下面例子中:
public class Hello {
String s = "Hello";
public Hello(String s){
System.out.println("s = " + s);
System.out.println("1 -> this.s = " + this.s);
this.s = s;
System.out.println("2 -> this.s = " + this.s);
}
public static void main(String[] args) {
Hello x=new Hello("HelloWorld!");
}
}
運行結果:
s = HelloWorld!
1 -> this.s = Hello
2 -> this.s = HelloWorld!
在這個例子中,構造函數Hello中,參數s與類Hello的變數s同名,這時直接對s進行操作則是對參數s進行操作。對類Hello的成員變數s進行操作就應該用this進行引用。運行結果的第一行就是直接對構造函數中傳遞過來的參數s進行列印結果;
第二行是對成員變數s的列印;第三行是先對成員變數s賦傳過來的參數s值後再列印,所以結果是HelloWorld!
2. this作為參數傳遞
當你要把自己作為參數傳遞給別的對象時如:
public class A {
public A() {
new B(this).print();
}
public void print() {
System.out.println("Hello from A!");
}
}
public class B {
A a;
public B(A a) {
this.a = a;
}
public void print() {
a.print();
System.out.println("Hello from B!");
}
}
運行結果:
Hello from A!
Hello from B!
在這個例子中,對象A的構造函數中,new
B(this)把對象A作為參數傳遞給了對象B的構造函數。
G. java中的this用法
this就是new出來的實例。比如定義一個Class:
class shape{
public draw(this){... ...}
this.name="circle";
}.
this就是new出來的實例。 這里第一個this和第二個this沒有區別,第一個draw方法需要一個shape實例作為參數。第二個this指的就是你new出來的實例。注意:不是指shape類。你這裡面的例子也是一樣的。
H. 新手求問java中的this用法
new只出現在構造方法之前用來生成對象
即:Student a = new Student();
this
1、當全局變數跟局部變數重名時,表示使用全局變數(此時this指代本類對象)
例有一類class A{
String name;
void setName(String name){
this.name = name;
}
}
2、構造方法相互調用,此時this指代本類類名
注意this只能放在構造方法第一句
如class B{
String name;
B(){
this("name");//會自動調用帶String參數的構造方法
}
B(String name){
this.name = name;
}
}
先說new,new就是創建個對象,比如你有個類A,如果想使用他,就需要 A a=new A();
再說return,這個使用在方法里的,遇到return就是方法結束了,不過不是所有的方法里都需
要return,使用return一般有兩種環境:1是方法有返回值,如 public String aa()
{ return "aaa";},2就是方法不需要返回值也可以使用return ,如public void aa(){
return;}第二種情況一般用在循環裡面
this說的不好理解;
this就是說這個類的當前這個對象,也就是構造方法產生的對象。
你new對象或者調用方法時,當碰到有this時,this就代表他自己。
另外,涉及到靜態的東西,就不會用this,因為靜態的東西是一個類所有對象共用的東西,
不歸某一個對象;
所以你可以在eclipse中編碼時看到,靜態方法你用this.staticMethod()會報警告,因為靜
態方法不歸這個對象,歸這個類的所有實例對象。
I. java中「this」的用法是什麼
一、指自己所在的對象。
比如在一個方法中,調用其他對象的變數或方法時,可以使用那個對象的對象名,比如aa.abc();
而調用自己所在對象的方法或變數時,不知道別人給起了什麼名,所以直接用this.abc()就可以了。
二、看一個小例子中「this」的用法!
/**
* @author feng-neusoft
*
* 本示例為了說明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方法中使用!