Java兩同
A. java 如一個類中有兩個同名的方法,調用的時候會用哪一個
會根據你傳遞的參數類型來判斷調用哪個方法,如果是int、short的話,先調int。如果是long、short先調long,順序是int、long、short。
滿意請點贊
B. java中如何判定兩個對象屬於同一類
首先,針對你的提問回答你的問題:可用判斷一個對象是否屬於某一類,兩個對象的情況如obj1與obj2,可用System.out.println((obj1 instanceof Student) && (obj2 instanceof Student));判斷,如果為true即是同屬一類。
但我猜你可能想問的是如果判斷兩個對象是否相等,下面提供一個例子讓你參考:
一:
class Student {
String name;
Student(String name) {
this.name = name;
}
}
public class Test {
public static void main(String[] args) {
Object o1 = new Student("lili");
Object o2 = new Student("lili");
System.out.println(o1 == o2);
System.out.println(o1.equals(o2));
}
}
輸出結果是:
false
false
o1 == o2 這樣比較的是對象的引用,但這里明顯不是同一對象,所以為false
o1.eqauls(o2)是比較的是對象的內容,但這依賴於equals()方法,這里沒有實現equals()方法,也就是一個類,如果沒有實現equals()方法,除了同一對象外,都不會有相等的機會
第二個例子:我們在這里實現equals方法,假設姓名相等則是同一學生
class Student {
String name;
Student(String name) {
this.name = name;
}
@Override//從Object類繼承而來
public boolean equals(Object obj) {
Student otherObj = (Student)obj;
if(obj == this) { // 如果是同一個對象,則相等
return true;
}
if(otherObj.name.equals(this.name)) { //如果姓名相等,則相等
return true;
}
return false; //否則,不是上面兩種情況則不相等.
}
}
public class Test {
public static void main(String[] args) {
Object o1 = new Student("lili");
Object o2 = new Student("lili");
System.out.println(o1 == o2);
System.out.println(o1.equals(o2));
}
}
輸出結果
false
true
也就是說,這兩個對象是相等的,而規則是由我們在equals方法里定義。
小結:==是判斷兩個對象是否是同一對象,而equals()則判斷兩個對象的內容是否相等,但條件是類必須已經實現了從Object繼承而來的equals()方法。
C. java中怎麼判斷兩個對象是否相同
java中如果兩對象(obj1,obj2)相等,那麼在修改obj2的時候,obj1的值也會改變。其實相當於內存中只有回一個對象,而obj1和obj2連個答變數都指向同一個對象。
如果兩個變數引用的是兩個不同地址的對象,即使對象的內部參數都是一樣的,系統也會認為是不同的兩個對象
至於比較方法,簡單一點的可以使用==。嚴謹一些就用equals
D. JAVA 兩個類能寫在同一個.java文件下嗎
一個java文件可以包含多個類,但是只有一個public的類,而且這個public的類名應該跟文件名相同,否則會有編譯錯誤。
E. java中一個類 怎樣實現2個介面有相同的方法名
1、首先雙擊打開eclipse開發工具,新建一個Java項目,並創建java package。
F. java中,可否將兩個class寫在同一個java文件中
可以的,java中class的寫法有4種,第一種是public class XXX{},第二種是非public類,例如:
public class A{}
class B{}
第二個class前面不能加public,
第三種是內部類,寫在公共類體裡面的,例如:
public class A{
private class B{}
}
只有A能調用B,
第四種是匿名內部類,一般在awt編程中比較多,位於方法體內部,一般用於只調用一次或者只有這個方法調用,例如:
public class A{
public void c(){
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
}
匿名內部類沒有類名,在方法體內部聲明,該例子是awt中的窗口關閉監聽器,用於監聽滑鼠是否觸發Window的關閉按鈕
G. java 判斷兩個類是否相同
應該沒有判斷兩個類是否相同的方法。
1、如果說兩個對象的判斷可以使用 equals,或者 ==。
2、如果判斷對象是否某個類 可以使用 instanceof ,isInstance
3、如果兩個類的比較 可以使用 isAssignableFrom,但只能得到是否是自身或者子類的結果,不能完全確定是否相同。
H. 為什麼java目錄下會顯示兩個相同的com文件夾
文件相同的規則是:文件名相同,而且文件後綴也相同的是同一個文件。
2個同名的文件,那麼就是格式不同,否則無法進行存儲的。
可以通過如下方式顯示隱藏的文件後綴:
第一步:點擊「我的電腦」,進入我的電腦界面。
第二步:找到左側「組織」下拉條中的「文件夾和搜索選項」,進入下圖界面。
第三步:將「隱藏已知文集類型的擴展名」前面的勾去掉,點擊確定即可完成設置。
I. java 兩個類調用同一個類對其產生同一個影響
你再理解一下對象的意思吧
B類和C類裡面分別new,分別創建了兩個A的對象,彼此沒關系,當然search不到
你要想能search到,可以把A類裡面的數組聲明為static
然後用A.state[0] = xxx;的形勢賦值,C裡面也用A.state[0]的形勢獲取
或者將B類裡面new出來的對象dvd,傳到C類里(這個大概你得琢磨一下)
J. Java 中有沒有直接可以判斷兩個類是否相同的方法
java沒有直接判斷兩個雷是否相同,但提供了如下方法:
1、如果說兩個對象的判斷可以使用 equals,或者 ==。
2、如果判斷對象是否某個類 可以使用 instanceof ,isInstance
3、如果兩個類的比較 可以使用 isAssignableFrom,但只能得到是否是自身或者子類的結果,不能完
如下代碼:
importjava.util.ArrayList;
publicclassceshi{
publicstaticvoidmain(String[]args){
Strings1=newString("javaisland");//測試兩個對象是否相同
System.out.println(s1instanceofString);//true
Strings2=newString("javaisland");//測試是否對象屬於某個類
System.out.println(String.class.isInstance(s2));//true
System.out.println(ArrayList.class.isAssignableFrom(Object.class));//false
System.out.println(Object.class.isAssignableFrom(ArrayList.class));//true
}
}
運行結果如下: