本文目录一览:
- 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的属性信息
}
}