Java程序设计第四章作业

1 问答题

1、对象与对象引用的区别是什么? 请举例说明

创建对象: new FighterPlane(); (分配在堆上)
声明一个对象引用: FighterPlane fp ; (分配在栈上)
初始化对象引用: fp = new FighterPlane();
例如:FighterPlane fp = new FighterPlane();
new FighterPlane()创建了一个FighterPlane对象,fp为对FighterPlane对象的引用。

2、对象作为参数传递的特点是什么?请举例说明

基本数据类型作为参数传递是值传递,而对象是引用传递,当对象作为参数传递时,传递的是对象的地址。
例如:

class IntClass {
    int value;
}
public class Test {
    public static void modifyValue(IntClass s, int val){
        val = 10;
        s.value = val;
    }
    public static void main(String[] args) {
        IntClass  a = new IntClass();
        int val = 8;
        modifyValue(a,val);
        System.out.println(a.value);
        System.out.println(val);
    }
}

输出结果:

10
8

3、对象初始化顺序是怎样的?请举例说明

①系统会对数据成员进行默认初始化
②执行数据成员定义处的初始化语句
③调用构造方法为数据成员指定初值
例如:

class IntClass {
    int value;//自动初始化,默认值为0
    //int value = 5;//在定义时指定初值

    public IntClass(){}
    //定义构造方法将属性value初始化
    public IntClass(int val){
        value = val;
    }
}

public class IntClassConstructor{
    public static IntClass getInstance(){
        //调用构造方法
        IntClass s =new IntClass(8);
        //s.value=8
        return s;
    }

    public static  void main(String[] args){
    IntClass a =new IntClass();
    System.out.println(a.value);
    a=getInstance();
    System.out.println(a.value);
    }
}

输出结果:

0
8

4、类的static字段与非static字段的区别是什么?什么情况应该使用static修饰符?请举例说明

用static修饰符修饰的数据成员是不属于任何一个类的具体对象,而是属于类的静态数据成员。它被保存在类的内存区的公共存储单元中,而不是保存在某个对象的内存区中。因此,一个类的任何对象访问它时,存取到的都是相同的数值。当对象中出现共享数据时使用static修饰符。
例如:

class IntClass {
    static int num = 0;
    int value = 5;

    public IntClass(){}

    public IntClass(int val){
        value = val;
    }
}

public class IntClassConstructor{
    public static IntClass getInstance(){
        IntClass s =new IntClass(8);
        return s;
    }

    public static  void main(String[] args){
        IntClass a =new IntClass();
        System.out.println(a.value);
        IntClass.num++;
        a=getInstance();
        a.num++;
        System.out.println(a.num);
        System.out.println(IntClass.num);
    }
}

输出结果:

5
2
2

5、Java中final修饰符都有什么作用?请举例说明

①final修饰属性,则属性为常量;
例如:

final int NUM = 20; 
NUM = 30; // 编译错误

②final修饰方法,则该方法在子类当中不能被覆盖(见多态一节),可防止任何继承类修改此方法,保证了程序的安全性和正确性。例如:

class Parent {
     public final void method1(){}//这个方法不能被子类覆盖    
} 
class Child extends Parent { 
     public final void method1(){}//编译错误
}

③final修饰类,则该类不能被继承
例如:

class Parent {
      final class Person extends Parent{
} //可以继承Parent类        
      class Child extends Person{
      } //编译报错,不能继承Person类
}

6、Java中float[10] arr; 语句正确么?为什么?

错误。声明时不可在方括号内指定数组大小。

7、Java数组元素类型为基本数据类型和引用类型时,有什么不同?请举例说明

①数组元素为基本数据类型的情形
例如: int[] arr = new int[10]; //此时分配了数组空间,每个单元初始化为默认值0
产生一个有10个单元,类型为int的数组对象,所有单元的初值为0。

②数组元素为引用类型
例如:String[] example = new String[10]; //对象引用数组
产生一个具有10个单元的数组对象,每个单元存放的是1个String对象的引用,所有单元的初值为null,此时并未创建具体的String对象
for(String x: example)
System.out.println(x); 输出结果为10个null
为数组对象引用赋值后,才能使用数组元素,否则抛出
NullPointerException异常
例如: example[0] = new String(“ab”); //创建String对象,赋值给example[0], 此时example的第一个元素指向String对象,从而可以操纵String对象。

《使用Java理解程序逻辑》 1.《使用Java理解程序逻辑》为Java全栈开发培训课程系列的入门教程,是后续学习Java进阶的必备基础课程,适合零基础想要进入Java开发行列的新手小白、对Java感兴趣想作为一种兴趣爱好来培养的各界人士一步一个脚印,脚踏实地学习,稳步入门提高 2.本课程知识点讲解较细,覆盖知识点全面,深入剖析每个知识点和时间运用,课程大纲和内容全部有老师亲自讲授和演示,零基础深入讲解Java基础语法和运用,所以可能课程周期较长,这样做的目的也是给大家充足的时间来消化和吸收上过的知识点。 2.本课程使用讲练结合(理论+案例+实践)的形式来授课,按照节循序渐进,每个节都安排了对应的上机练习题目和选择器、重点知识简答等作为课后作业(课后作业分为基础和进阶部分),基础部分是学员必须要课下按时完成的,进阶类型的作业是每个节知识点的扩展和提高,适合能力比较强的同学在完成基础作业的基础上完成,建议做完基础作业的同学最好都能把进阶作业也完成。 3.本课程会陆续开通学员QQ群,群内会共享上课资料,老师也会不定时回复大家问题(老师白天工作较忙,如果老师不能及时回复,请同学们把问题记录汇总下来,老师会定期开展答疑专题公开课,在直播公开课会一对一给大家解答,会给大家开通第三方工单平台权限,大家也可以把问题发布到工单平台,老师这边有时间的时候会一一解答的,希望大家遇到问题的时候一定不要着急哦) 我们的全套所有课程都会有录屏的,并且提供所有的课程相关课件、示例代码、知识点总结文档、上机练习、课后作业和解答、案例代码、节项目实现和代码都会给大家提供的哈 PS:老师平常工作较忙,可能不能及时回复大家的问题,大家可以给我QQ留言,老师有时间的时候会统一回复的,希望大家不要着急,一步一个脚印把每个节、每个示例都牢牢掌握,为后面的深入学习打好坚实基础。 保证课程大纲和全部课程内容都是由老师自己总结和整理的,大家可以放心 课程每个课时、每个节都会配套大量案例代码、上机练习、节复习题等供大家夯实Java基础语法并灵活运用,提供了很多贯穿项目案例,课程结束后还附赠真实项目案例、知识宝典和课程结业考试,全套都有源码、试题、解析、讲义,课程结业考试不通过的可以终身免费学习本课程,直到数量掌握、全部学会为止。    一.学完本套课程,你可以: 运用Java编写命令行程序 会编译、运行、调试、维护Java程序 熟练掌握JavaSE基础语法并灵活运用 初步理解Java面向对象的编程思想 能够运用Java程序解决生活中的简单问题 学完本课程,你可以深入的学习和掌握全套深入细致讲解的Java课程,具体每个节的详细课程内容、课程安排、上机练习、专题复习课、实战案例课本课程一应俱全,Java SE样样全都有,打好基本功,Java伴左右。本课程是后续开展的Java中级、高级、架构进阶课程等Java开发课程方向的必备基础  
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页