zoukankan      html  css  js  c++  java
  • Java第二次作业

    一、学习总结
    1.什么是构造方法?什么是构造方法的重载?下面的程序是否可以通过编译?为什么?

    (1)构造方法用于在创建对象时对其进行初始化。
    Person per=new Person();
    特点:
    ( 1)方法名与类名相同;
    ( 2)方法名前没有返回值类型的声明,方法中不能使用return语句返回一个值;
    (3)用户不能直接调用,而是通过关键字new自动调用;
    (4)在构造方法的实现中,也可以进行方法的重载。
    如果一个类中没有声明一个明确的构造方法,则Java运行系统会自动提供缺省的构造方法,它没有任何参数,什么也不做。
    (2)构造方法的重载就是方法名称相同,但参数的类型和参数的个数不同,通过传递参数的个数及类型不同以完成不同功能的方法调用。
    (3)该程序不可以运行,因为只定义了一个有参构造方法;如果在一个类中已经明确了地声明了一个构造方法,那么程序在编译时将不会再生成默认的构造方法。
    2.运行下列程序,结果是什么?分析原因,应如何修改。

    结果:

    原因:只定义了对象数组但是没有对它进行实例化;数组里的每一个对象都需要进行实例化。
    修改:对数组里的元素进行实例化
    3.运行下列程序,结果是什么?说明原因。

    结果:

    原因:
    obj1与obj2的地址空间不相同。
    4.什么是面向对象的封装性,Java中是如何实现封装性的?试举例说明
    (1)类中并不是所有的信息都能让用户可见的,因此隐藏这些信息就很有必要。这就是面向对象封装性的要求。
    (2)封装性的目的:保护当前类的某些属性和方法不被外部所见。
    (3)封装性的实现:Java的封装是通过private修饰符来声明属性和方法实现的。

    5.阅读下面程序,分析是否能编译通过?如果不能,说明原因。
    (1)

    该程序不能编译通过
    原因:因为secret是私有属性private的,不能在类外直接访问。
    (2)
    该程序不能编译通过
    原因:x没有被static修饰
    6.使用类的静态变量和构造方法,可以跟踪某个类创建的对象个数。声明一个图书类,数据成员为编号,书名,书价,并拥有静态数据成员册数记录图书的总数。图书编号从1000开始,每产生一个对象,则编号自动递增(利用静态变量和构造方法实现)。下面给出测试类代码和Book类的部分代码,将代码补充完整。
    class Book{
    int bookId;
    String bookName;
    double price;
    // 声明静态变量
    public static int a;
    //定义静态代码块对静态变量初始化
    static {
    a=0;
    }
    //构造方法
    public Book(String bookName,double price) {
    this.bookName=bookName;
    this.price=price;
    this.bookId=a;
    a++;
    }
    public String getBookName() {
    return bookName;
    }
    public void setBookName(String bookName) {
    this.bookName = bookName;
    }
    public double getPrice() {
    return price;
    }
    public void setPrice(double price) {
    this.price = price;
    }
    //定义方法求图书总册数
    public static int totalBook() {
    return a;
    }
    //重写toString方法
    public String toString() {
    return "编号:"+bookId+"书名:"+bookName+"价格:"+price+"图书总数目"+a;
    }
    }
    public class Test{
    public static void main(String args[]){
    Book[] books = {new Book("c语言程序设计",29.3),
    new Book("数据库原理",30),
    new Book("Java学习笔记",68)};
    System.out.println("图书总数为:"+ Book.totalBook());
    for(Book book:books){
    System.out.println(book.toString());
    }
    }
    }

    7.什么是单例设计模式?它具有什么特点?用单例设计模式设计一个太阳类Sun。
    (1)将采用的单例设计模式的类的构造方法私有化;
    (2)在其内部产生该类的实例化对象,并将其封装成prviate static类型。
    (3)定义一个静态方法返回该类的实例。

    8.理解Java参数传递机制,阅读下面的程序,运行结果是什么?说明理由。

    原因:没有改变主方法中的str的值。
    (二)实验总结
    1、定义三个类:选手类,平分类,测试类。

    2.Email验证
    思路:先输入email地址
    然后编写方法判断地址是否有效
    问题:不以@开头不代表可以以“.”开头
    (三)代码托管(https://gitee.com/hebau_java_cs16/ex34)

  • 相关阅读:
    矩阵
    字符串算法 KMP算法 BF算法的升级版
    字符查找算法 BF算法
    查找:二叉查找树升级版 平衡二叉树(AVL树) 2020年8月
    查找:二叉查找树 c++ 2020年8月
    基数排序,也叫关键码排序
    归并排序,冯诺依曼首次提出。分为递归实现、非递归实现
    堆排序,升级版的选择排序
    P1233 木棍加工【dp】
    P2758 编辑距离【dp】
  • 原文地址:https://www.cnblogs.com/zpl0120/p/8687621.html
Copyright © 2011-2022 走看看