编程题:在集成开发环境下编写运行例4.16,4.17,并完成打包 name中建议不要使用中文,无法识别
问答题: 1.对象与对象引用的区别是什么?请举例说明 对象在堆中,引用在栈中。 引用是对象的一个名字,可以将引用理解为java的指针 比如Student A=new Student(“Yi”); 后面new出来的东西叫对象,这个A就是引用,只是对象的地址而已。
2.对象作为参数传递的特点是什么?请举例说明 对象是引用传递,当对象作为参数传递时,传递的是对象的地址
class IntClass { int value; } public class RunIntClass{ public static void modifyValue(IntClass s,int val) { s.value=val; } public static void main(String args[]) { IntClass a=new IntClass(); modifyValue(a,8); System.out.println(a.value); } }执行到IntClass a=new IntClass();时,产生一个IntClass对象,被a所引用,后利用a作为参数,改变了对象的属性
3.对象初始化顺序是什么样的?请举例说明 1 static静态的变量定义; 2 static块里的代码执行,static变量也是在此刻初始化的 3 非static变量定义 4 构造方法 5 非static变量初始化 比如: class test{ private static int a=1; private int b=1;
4.类的static字段与非static字段的区别是什么?什么情况应该使用static修饰符?请举例说明 static是为了将某个成员变量/方法关联到类(class)而非实例(instance)。 不需要创建一个对象就可以直接使用这个类的static成员, 在A类中调用B类的static成员可以使用B.staticMember的写法。 注意一个类的static成员变量是唯一的,被所有该类对象所共享的。 比如说有一个类Dog; 属性:clolor,狗狗可以有好多颜色; munberOfLegs =4 每只狗狗只有4条腿,这个就应该是静态的; 静态的属性不依赖于类的存在而存在,简单说,你可以定义 Dog dog1 = new Dog(); Dog dog2 = new Dog(); Dog dog3 = new Dog(); 这里定义了三条狗狗,狗狗的颜色依赖于类本身,即dog1,dog2,dog3;三条狗狗可以有不同的颜色; 而狗狗的腿的数量不依赖于dog1,dog2,dog3;所有的狗狗都是4条腿
5.Java中final修饰符都有什么作用?请举例说明 1,修饰类 当用baifinal修饰一个类时,表明这个类不du能被继承。zhi也就是说,如果一个类你永远不会让他被继承,就可dao以用final进行修饰。final类中的成员变量可以根据需要设为final,但是要注意final类中的所有成员方法都会被隐式地指定为final方法。 在使用final修饰类的时候,要注意谨慎选择,除非这个类真的在以后不会用来继承或者出于安全的考虑,尽量不要将类设计为final类。 2,修饰方法 被final修饰的方法将不能被子类覆盖,主要用于1,把方法锁定,以防任何继承类修改它的含。2,在早期的Java实现版本中,会将final方法转为内嵌调用,所以效率能够提升 3,修饰变量 对于一个final变量,如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改;如果是引用类型的变量,则在对其初始化之后便不能再让其指向另一个对象。 当用final作用于类的成员变量时,成员变量(注意是类的成员变量,局部变量只需要保证在使用之前被初始化赋值即可)必须在定义时或者构造器中进行初始化赋值,而且final变量一旦被初始化赋值之后,就不能再被赋值了。 6.Java中float[10]arr;语句正确么?为什么? 不正确。 java语法规定,变量定义应为: 访问符 类型 标识符 局部变量不写访问符,既是:类型 标识符。 [20]arr有特殊符号[],不是合法的标识符,所以报错。 float数组类型是:float[] ,因此:float[] arr 才是正确的
7.Java数组元素类型为基本数据类型和引用类型时,有什么不同?请举例说明
基本数据类型:其中存储的元素为基本类型数据。 元素是对象,其中存储的是对象的地址值。
引用类型:引用数据类型的数组使用规定长度的方式进行初始化时,默认值为null。 如:Stu[] c = new Stu[10]; c中存有数组对象的地址,此对象中有10个null。