⑴ 在java中創建對象到底有多少種方法
Java中創建對象的四種方式
1.用new語句創建對象,這是最常見的創建對象的方法。
2.運用反射手段,調用java.lang.Class或者java.lang.reflect.Constructor類的newInstance()實例方法。
3.調用對象的clone()方法。
4.運用反序列化手段,調用java.io.ObjectInputStream對象的 readObject()方法。
下面演示了用前面3種方式創建對象的過程:
public class Customer implements Cloneable{
private String name;
private int age;
public Customer(){
this("unknown",0);
System.out.println("call default constructor");
}
public Customer(String name,int age){
this.name=name;
this.age=age;
System.out.println("call second constructor");
}
public Object clone()throws CloneNotSupportedException{
return super.clone();
}
public boolean equals(Object o){
if(this==o)return true;
if(! (o instanceof Customer)) return false;
final Customer other=(Customer)o;
if(this.name.equals(other.name) && this.age==other.age)
return true;
else
return false;
}
public String toString(){
return "name="+name+",age="+age;
}
public static void main(String args[])throws Exception{
//運用反射手段創建Customer對象
Class objClass=Class.forName("Customer");
Customer c1=(Customer)objClass.newInstance(); //會調用Customer類的默認構造方法
System.out.println("c1: "+c1); //列印name=unknown,age=0
//用new語句創建Customer對象
Customer c2=new Customer("Tom",20);
System.out.println("c2: "+c2); //列印name=tom,age=20
//運用克隆手段創建Customer對象
Customer c3=(Customer)c2.clone(); //不會調用Customer類的構造方法
System.out.println("c2==c3 : "+(c2==c3)); //列印false
System.out.println("c2.equals(c3) : "+c2.equals(c3)); //列印true
System.out.println("c3: "+c3); //列印name=tom,age=20
}
}
除了以上4種顯式地創建對象的方式以外,在程序中還可以隱含地創建對象,包括以下幾種情況:
1.對於java命令中的每個命令行參數,Java虛擬機都會創建相應的String對象,並把它們組織到一個String數組中,再把該數組作為參數傳給程序入口main(String args[])方法。
2.程序代碼中的String類型的直接數對應一個String對象。
3.字元串操作符「+」的運算結果為一個新的String對象。
4.當Java虛擬機載入一個類時,會隱含地創建描述這個類的Class實例.
⑵ java中類,對象,屬性,方法,都是什麼,簡單明了的說明一下
類:就是一種歸類,例如:電器,通俗的講,就是用電才能工作的機器(不是很准確);又如:人 類,包括人的這一類生物。是具體對象的抽象說法。
對象:就是具體的對象,例如:張三、王五、鉛筆、輪滑鞋,等等具體事物,可唯一性的
屬性:通俗講就是具有的特徵,屬性特徵,例如電器中的一種(對象):電飯煲,它的屬性可以是:功率1000w,有兩檔,等等
方法:就是對象能幹什麼?如:電飯煲可以煮飯等,這個方法是要自己去實現的,通過操縱屬性等來實現
我講的過於粗糙,僅供參考,不懂可追問~
⑶ 請問Java中的類、對象、方法、形參、實參、函數之間的關系是什麼
java中的類是個抽象的東西,對象是類的實例,方法是類的行為,也稱為函數,形參是方法裡面定義的入參,實參就是在函數被調用的時候實際傳入的參數
一個類裡面可以有多個函數,一個函數可以有多個形參,有幾個形參就必須有幾個實參對應。
⑷ Java中類,對象,方法到底都是什麼
package
com;
public
class
Ware
{//這里就是創建一個類
private
int
wareid;//以下都是Ware類的域,差不多變數的意思
private
int
sort;
private
String
name;
private
Double
price;
private
Double
marketprice;
private
String
smallimg;
private
String
bigimg;
private
String
description;
//
下面public...是類的方法,用來完成一些對應的工作,方法包含在類體裡面。
public
void
setWare(int
wareid,int
sort,String
name,Double
price,Double
marketprice,String
smallimg,String
bigimg,String
description){
this.wareid=wareid;
this.sort=sort;
this.name=name;
this.price=price;
this.marketprice=marketprice;
this.smallimg=smallimg;
this.bigimg=bigimg;
this.description=description;
}
public
int
getWareId(){
return
wareid;
}
public
int
getSort(){
return
sort;
}
public
String
getName(){
return
name;
}
public
Double
getPrice(){
return
price;
}
public
Double
getMarketPrice(){
return
marketprice;
}
public
String
getSmallImg(){
return
smallimg;
}
public
String
getBigImg(){
return
bigimg;
}
public
String
getDescription(){
return
description;
}
}
get是獲取一些對象的屬性
set是設置,這些方法寫了一堆呢
是因為需要把這個類做成一個相當於黑匣子一樣的東西,讓使用者只需要調用get
set來使用就可以。
PS:對象是具體實例話一個類,比如我們把人封裝成一個類person,那麼,在創建這個類的對象man=new
person();使用set方法給這個man對象帶上紅領巾,那麼這個man對象就是一個少先隊員了,呵呵
⑸ 2020-09-10:java里Object類有哪些方法
Java Object類是所有類的父類,主要方法有:
getClass():獲取運行時類型,返回值為Class對象
2.hashCode():返回該對象的哈希碼值,是為了提高哈希表的性能(HashTable)
3.equals():判斷兩個對象是否相等,在Object源碼中equals就是使用==去判斷,所以在Object中equals是等價於==的,但是在String及某些類對equals進行了重寫,實現不同的比較。
4.clone():JAVA里除了8種基本類型傳參數是值傳遞,其他的類對象傳參數都是引用傳遞,我們有時候不希望在方法里講參數改變,這是就需要在類中復寫clone方法。此方法只實現了一個淺層拷貝,對於基本類型欄位成功拷貝,對嵌套對象,只把地址拷貝了,需要自己重寫clone方法進行深度拷貝。
5.toString():返回一個String字元串,用於描述當前對象的信息,可以重寫返回對自己有用的信息,默認返回的是當前對象的類名+hashCode的16進制數字。
6.wait():多線程時用到的方法,作用是讓當前線程進入等待狀態,同時也會讓當前線程釋放它所持有的鎖。直到其他線程調用此對象的 notify() 方法或 notifyAll() 方法,當前線程被喚醒
7.notify():多線程時用到的方法,喚醒該對象等待的某個線程
8.notifyAll():多線程時用到的方法,喚醒該對象等待的所有線程
9.finalize():對象在被GC釋放之前調用finalize方法。
你明白了嗎?
⑹ JAVA中類方法和對象方法有什麼區別
類方法是所有該類的實例也就是對象共有的方法;對象方法是每個該類的實例也就是對象所私有的。
類方法必須既可以用類名直接調用,也可以用對象來調用;對象方法只能用對象來調用。
⑺ Java中類,對象,方法到底都是什麼
類是對一類事物的描述。如「人」就是一個類,一個類又有很多屬性和方法,如「人」有「名字」,「性別」「年齡」等屬性,有「行走」,「說話」等方法。說簡單點就是屬性描述一個類是什麼樣的,而方法描述一個類能幹什麼。我們說創建一個類,就是寫一個Java類,如
class
Person{//類
String
name;....//屬性
public
void
run(){..}//方法
}
而對象是類的一個實例,如「張三」就是「人」這個類的一個對象。我們可以通過如下語句來創建「張三」這個對象:Person
zhangsan
=
new
Person();這里用到了Person這個類的一個默認構造函數來創建zhangsan這個對象。至於setXXX,getXXX分別用來設置和獲取屬性XXX的值。
⑻ Java語言中Object類定義了哪11種方法
Java中所有類(包括用戶自己定義的類)都自動繼承Object類,即Object類是所有類的父類。
Object中常用方法:
public boolean equals(Object obj)
比較當前對象與obj是否為同一對象,返回值:ture/false
public String toString()
返回當前對象的字元串表達形式
public native int hashCode();
返回對象的Hash碼。Hash碼是標志對象的唯一值,Hash碼相同的對象是同一對象
protected void finalize()throws Throwable
對象銷毀時被調用
以下三個函數用於控制線程
public final native void notify();public final native void notifyAll();public final native void wait();
native型方法指由C++語言編寫的方法,Java解釋器對其進行轉義後才執行。
「==」與equals()
"==" 一般用於基本數據類型比較。若用作兩個引用對象比較,僅當引用變數引用同一個對象時,才返回true,否則false。
void EqualCompare()
{
String s1 = new String("Hello");
String s2 = new String("Hello");
String s3 = "Hello";
String s4 = "Hello";
//未使用new,s4引用既存的對象(編譯器創建對象之前先進行檢測"Hello"是否已經存在,若存在,則返回原對象的引用)
System.out.println(s1.equals(s2)); //truex1行
System.out.println(s1 ==s2); // false 兩變數引用不同對象
System.out.println(s3.equals(s4)); //true 兩變數引用相同對象
System.out.println(s3 ==s4); // true 兩變數引用相同對象
}
比較對象時,一般用equal()方法。
Object類方法定義:public boolean equals(Object obj){ return (this == obj);}
不同的類可方便的對該對象進行覆蓋。String類就覆蓋了Object類的equals()方法,所以x1行輸出true.
a==b 如果a,b引用同一對象,則返回true;
a.equals(b) 如果a對象內容和b對象內容相同,則返回true
如果未重載equals()方法的類對象使用該方法與另一個對象進行比較,則調用Object的equals()方法,仍然是對象的比較,返回值為false。