本文目錄一覽:
- 1、分析如下Java代碼,編譯運行後將輸出
- 2、求java大神,請分析以下代碼,寫出執行結果,並解釋每行結果輸出的原因。
- 3、用java寫一個代碼分析程序,謝謝。
- 4、誰能幫我把這個java代碼分析一下我被繞暈了
- 5、JAVA代碼分析問題!
分析如下Java代碼,編譯運行後將輸出
選B。結果輸出為2.1、在main()函數中Test test = new Test();ArrayList al = new ArrayList();al.add(1);截止這裡,al裡面有一個數據1。al是屬於main()函數中的ArrayList對象的引用.2、到了static void print(ArrayList al) {//你在這裡定義的al是屬於print的變數,只是與main()函數中的alal.add(2); //有同一個引用,到這裡al裡面值為【1,2】al = new ArrayList();//這時,你在print函數中又創建一個對象,把這個對象的引用給al,但是main()函al.add(3); //數中的al的引用與這裡沒有任何關係al.add(4);//當執行完al.add(4)結束,那麼print()方法中的al,在某個時刻會被垃圾回收機制自動清除//main()函數中al的還存在} 接著列印al.get(1),那麼結果就為2. 希望我的回答對你有幫助!
求java大神,請分析以下代碼,寫出執行結果,並解釋每行結果輸出的原因。
第一行,定義了int類型一維數組a和二維數組b
a={10,20,30,40}
b={{1,2},{4,5,6,7}}
第二行,b[0] = a; — b={{10,20,30,40},{4,5,6,7}
第三行,b[0][1](20) = b[1][3](7); — b={{10,7,30,40},{4,5,6,7}}(這裡是地址引用,b[0]是a,所以b[0]改了,a也被改了)
最後:b[0][3] = 40,a[1] = 7
用java寫一個代碼分析程序,謝謝。
哥們…..
這問題幫不了你了額……..只能給你提示….
確實有點難度…
在正常運行情況下類的數量,函數的數量容易得到,但是程序的規模這就難了啊…
代碼行數你可以用Eclipse里的Debug模式。
誰能幫我把這個java代碼分析一下我被繞暈了
//哈哈,感覺這道題真心好啊。不知道樓主是從哪裡看到的。
//首先這道題樓主要明白以下兩點:
//1:繼承時,子類會隱藏父類相同的方法,要調用父類方法就必須使用super關鍵字。
//2:向上轉型時,子類會丟失和父類不同的方法,可以使用父類的不同名的所有方法。
public class PolyDemo09{
public static void main(String[] args){
A a1 = new A();
A a2 = new B();//B類型向上轉型丟失與A類不同方法
B b = new B();
C c = new C();
D d = new D();
System.out.println(“⑴ ” + a1.show(b));//B類的父類是A,所以A and A
System.out.println(“⑵ ” + a1.show(c)); //C類父類的父類是A,D和他是同級。所以A and A
System.out.println(“⑶ ” + a1.show(d));//D類方法有,所以不會向上轉型,所以A and D
System.out.println(“⑷ ” + a2.show(b)); /*注意這時候a2的兩個方法其實是
public String show(D obj) {
return (“A and D”);
}
public String show(A obj) {
return (“B and A”);
} B的父類是A,所以B and A
*/
/**/
System.out.println(“⑸ ” + a2.show(c));//C的父類的父類是A,所以B and A;
System.out.println(“⑹ ” + a2.show(d)); //D有對應方法,所以A and D
System.out.println(“⑺ ” + b.show(b)); /*這個就是繼承了,繼承除了隱藏父類中和子類同名的方法外,在子類中可以直接使用父類的方法。所以B and B
所以就變成了
public String show(D obj) {
return (“A and D”);
}
public String show(B obj) {
return (“B and B”);
}
public String show(A obj) {
return (“B and A”);
*/
System.out.println(“⑻ ” + b.show(c)); //C 的父類是B,所以B and B
System.out.println(“⑼ ” + b.show(d));//D有相應方法,所以A and D
}
}
class A {
public String show(D obj) {
return (“A and D”);
}
public String show(A obj) {
return (“A and A”);
}
}
class B extends A {
public String show(B obj) {
return (“B and B”);
}
public String show(A obj) {
return (“B and A”);
}
}
class C extends B {
}
class D extends B {
}
JAVA代碼分析問題!
class Person {
public String name; //定義一個name屬性
public String location; //定義一個location屬性
Person(String name){ //定義一個構造方法,用於初始化name屬性
this.name = name;
location = “beijing”; //初始化location屬性
}
Person(String name,String location) { //重載一個構造方法,用於初始化name屬性和location屬性
this.name = name;
this.location = location;
}
public String info() { //定義一個方法,返回實例的屬性信息
return “name:”+ name +”location:”+location;
}
}
class Teacher extends Person { //定義一個Teacher類,從Person繼承
private String capital;
Teacher (String name,String capital) { //定義一個構造方法,用於初始化name和capital屬性
this(name,”beijing”,capital); //調用本類中定義的構造方法
}
Teacher (String n,String l,String capital){ //定義一個構造方法,用於初始Teacher類中的capital,name和location屬性
super (n,l); //調用父類中的構造方法初始化name,location屬性
this.capital = capital; //初始化Teacher類中的capital屬性
}
public String info() { //重寫父類中的info()方法,並且附加capital屬性的信息
return super.info() + “capital” + capital; //返回Teacher的各個屬性信息
}
}
class Student extends Person { // 定義一個Student類,從Person繼承
private String school; //定義chool欄位
Student(String name,String school) { //定義一個構造方法,用於初始化name和school屬性
this(name,”beijing”,school); //調用本類中定義的構造方法
}
Student(String n,String l,String school) { //定義一個構造方法,用於初始Student類中的school,name和location屬性
super(n,l); //調用父類中的構造方法初始化name,location屬性
this.school = school; //初始化Student類中的school欄位
}
public String info() { /重寫父類中的info()方法
return super.info() + “school:” + school; //返回Student類中各個欄位或屬性信息
}
}
public class Test { //定義Test主類,用於測試定義各個類
public static void main (String[] args) {
Person p1 = new Person(“A”); //實例化Person類,調用構造器初始化name屬性
Person p2 = new Person(“B”,”shanghai”); //實例化Person類,調用構造器初始化name,location屬性
Student s1 = new Student(“C”,”s1″); //實例化Student類,調用構造器初始化name,school屬性
Student s2 = new Student(“C”,”shanghai”,”s2″); //實例化Student類,調用構造器初始化name,location,school屬性
Teacher t1 = new Teacher(“D”,”perfessor”); //實例化Teacher類,調用構造器初始化name,capital屬性
System.out.println(p1.info()); //輸出實例p1的屬性信息
System.out.println(p2.info()); //輸出實例p2的屬性信息
System.out.println(s1.info()); //輸出實例s1的屬性信息
System.out.println(s2.info()); //輸出實例s2的屬性信息
System.out.println(t1.info()); //輸出實例t1的屬性信息
}
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/206721.html