日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java学习笔记(三)----成员权限,构造函数,this用法

發布時間:2025/7/14 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java学习笔记(三)----成员权限,构造函数,this用法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

成員權限
????????
?????????????? 本類??? 同包類??? 非同包子類??? 非同包非子類

public?????? ? y????????y???????????? ? y??????????????????????? y

protected??? y??????? y?????????? ?? ?y

default?????? ?y??????? y

private????? ? y


在類中定義的變量,在創建對象時,會自動對類中的變量進行初使化,對如int類的會被初使化為0。
在方法中定義的變量,不會被初使化。

peason p1=new peason p1();
peason p2=p1;
p1=null;
此時p1為空,變為垃圾,peason對象還被p2所引用.

==和equals的區別:==用于比較兩個變量的值是否相等(用于基本數據類型,equals用于比兩個對象中的內容是否完全一樣)
對于String s1=new String("abc"); 和 String s2=new String("abc");這兩條語句,用if (s1==s2) , s1和s2是不等的,因為s1和s2是兩個對象,所以不等; 但String s3=s1;
用if (s1==s3),則結果是相等的,因為s1和s3指向堆中的同一個對象,他們在棧中的值是一樣的。
equals用于比較兩個對象中的內容是否相等,if (s1.equals(s2)) ,則結果相等


數組間的考備函數 System.arraycopy()
數組間的排序 arrays.sort()
數組的比較也可用equals()

?

--------------------------------
***********匿名對象
可以 new 類名().方法名(); new peason().shout();直接創建一個對象,調用方法.(匿名對象)
匿名對象的兩種情況:1.如果對一個對象只需要進行一次方法調用,那么就可以使用匿名對象。
2.將匿名對象作為實參傳遞給一個函數調用,比如程序中有一個getSomeOne函數,要接收一個Person類對象作為參數,函數定義如下;
public static void getSomeone(Person p)
{.......}
可以用下面的語句調用這個函數
getSomeOne(new Person());

?

----------------------------
*********構造函數
構造方法的特征:
1.它具有與類相同的名稱
2.它不含返回值
3.它不能在方法中用return語句返回一個值
注意:在構造方法里不含返回值的概念是不同于void的,在定義構造方法時加了void,結果這個方法就不再被自動調用了

在構造函數中,通過this可以調用同一class中別的構造函數,如

   public class Flower{
   Flower (int petals){}
   Flower(String ss){}
   Flower(int petals, Sting ss){
   //petals++;調用另一個構造函數的語句必須在最起始的位置
   this(petals);
   //this(ss);會產生錯誤,因為在一個構造函數中只能調用一個構造函數
   }
   }
   **:1)在構造調用另一個構造函數,調用動作必須置于最起始的位置
   2)不能在構造函數以外的任何函數內調用構造函數

   3)在一個構造函數內只能調用一個構造函數

?

------------------------------------------

this用法1
class Person ()
{? private int age;
?? private String name=new String();
?? public Person(){}
?? public Person( String x)????
?? {? name=x;}
?? public Person( String x,int y)
?? {? name=x;? age=y;}
?? public void fun1();
?? {? System.out.println(name) }
?? public void fun2();
?? {? Person a2=new Person("a2");
????? a2.fun1();
????? this.fun1();? // a1.fun1? this代表對fun2進行調用的對象,fun2運行時是一定有一個對象存在的,這里的this是可以省略的,直接用fun1()
??? }
?? //this就相當于我所在的那個對象
?? public static void main(String [] args)
?? { Person a1=new Person("a1");
???? a1.fun2();
?? }????
}

this用法2
?class Person ()
{? private int age;
?? private String name=new String();
?? public Person(){}
?? public Person( String x)?????
?? {? name=x;}
?? public Person( String x,int y)
?? {? name=x;? age=y;}
}
改為
? class Person ()
{? private int age;
?? private String name=new String();
?? public Person(){}
?? public Person( String name)?????
?? {? this.name=name;}
?? public Person( String name,int age)
?? {? this.name=name;? this.age=age;}
}
????
this用法3:用構造方法去調用另一個構造方法
?class Person ()
{? private int age;
?? private String name=new String();
?? public Person(){}
?? public Person( String name)?????
?? {? this.name=name;}
?? public Person( String name,int age)
?? {? this();?? // 調用Person()構造孔方法
????? this(name); //調用Person(String name)構造方法
????? this.age=age;}
}
---------------------------------------
finalize 析構方法,垃圾回收器? 用法 public void finalize(){...}
System.gc() 當在主函數中調用時,啟動地垃圾回收finalize(){...}
每個類中都有一個垃圾回收器

Classs A{
...
...
public void finalize()
{ System.out.println("object is going!"); }

public static void main(String[] args)
{ new A();
? new A();
? new A();
? System.gc(); //啟動垃圾回收
}
}
運行結果:object is going!
????????? object is going!
????????? object is going!

總結

以上是生活随笔為你收集整理的java学习笔记(三)----成员权限,构造函数,this用法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。