Java第二次作业

时间:2021-01-04 16:48:07

(一)
一.什么是构造方法?
1.构造方法的名字必须与定义他的类名完全相同,没有返回类型,甚至连void也没有。
2.构造方法的调用是在创建一个对象时使用new操作进行的。构造方法的作用是初始化对象。
3.不能被static、final、synchronized、abstract和native修饰。构造方法不能被子类继承。
其实其实构造方法就是为了给类中成员赋初值.
二.什么是构造方法的重载?
1.在Java程序中,我们可以使用系统默认的构造方法,即我们不自己创建构造方法时。此时,我们只需要定义类中其他的方法及属性,而不必定义构造方法。构造方法在创建对象时会自动调用,执行构造方法内的内容。
2.如果我们要使用自己的构造方法。此时,我们要显式地创建构造方法。构造方法有以下两个要点:
(1)构造方法的名称是与类名相同的;
(2)构造方法没有返回值,即方法名前没有void,int等数据类型,方法体内没有return语句;
3.构造方法的格式如下:
class 类名称A{
数据类型 变量名;//定义其他的变量及其方法
访问权限 类名称A(参数1,参数2,参数3){
程序语句;
... //构造方法没有返回值
}
}

  1. Java第二次作业
    不能编译,以上程序有错误,错误在构造方法的重载时没有返回值,可以改为Foo obj=new Foo(0);也可以在类的定义构造方法里更改:
  2. Java第二次作业
    错误的原因是:调用数组对象为空,没有赋初值,没有分配内存空间的方法。为arr分配堆空间:比如
    public class Test1 {
    public static void main(String[] args) {
    MyClass[] arr={new MyClass(),new MyClass(),new MyClass()};
    arr[0].value=100;
    System.out.println(arr[0].value);
    }
    }
    class MyClass{
    public int value=1;
    }
    3
    .Java第二次作业
    原因是不可以使用“==”可以判断对象变量值是否相等,修改如下:
    Java第二次作业
    4.封装性就是指对外部不可见,用对象直接访问类中的属性,在面向对象法则中是不允许的。
    属性封装:private 属性类型 属性名称;
    比如:
    Java第二次作业
    Java第二次作业
  3. Java第二次作业
    不可编译,因为字段 A.secret 不可视.,
    可以创建构造get和set方法。
    (2)
    Java第二次作业
    不能对非静态字段 x 进行静态引用,应该在int x 前加 static
    6.使用类的静态变量和构造方法,可以跟踪某个类创建的对象个数。声明一个图书类,数据成员为编号,书名,书价,并拥有静态数据成员册数记录图书的总数。图书编号从1000开始,每产生一个对象,则编号自动递增(利用静态变量和构造方法实现)。下面给出测试类代码和Book类的部分代码,将代码补充完整。
    Java第二次作业
    Java第二次作业
    Java第二次作业
  4. .什么是单例设计模式?它具有什么特点?用单例设计模式设计一个太阳类Sun。
    单例模式确保一个类只有一个实例,自行提供这个实例并向整个系统提供这个实例。
    优点:
    1,一个类只能有一个实例
    2,自己创建这个实例
    3,整个系统都要使用这个实例
    Java第二次作业
    8.理解Java参数传递机制,阅读下面的程序,运行结果是什么?说明理由。
    Java第二次作业
    按地址传递 并将地址为0的字母大写,方法不能修改传递给它的任何参数变量的内容。change调用的是str的副本,不能改变str的内容。
    9.其他需要总结的内容。