• 2020.8.20


    一、今日学习内容

    学生(student)类:

        定义描述学生的student类,包含受保护两个数据成员,分辨是描述姓名的,string类型和描述学号的,int类型,构造函数有两个形参,用于设定这两个数据成员的值,此外包含6个成员函数,用于设定姓名和学号的函数,void setnameid(), 用于显示姓名和学号的函数void displaynameid(),以及四个纯虚函数void setmajor() ,string getmajor() , void setadvisor()  和 string getadvisor();

    由学生类派生本科生类understud,新增受保护数据成员,描述专业,string类型,构造函数具有三个形参,重新定义函数void setmajor() 和string getmajor(),用于设置专业和获取专业;

    由本科生类派生研究生类poststud,新增私有数据成员,描述导师姓名,string类型,构造函数具有四个形参,且具有缺省值,学生姓名缺省值为“***”,学号缺省值为-1,专业缺省值为“###”,导师姓名缺省值为“&&&”,重新定义函数void setadvisor()  和 string getadvisor(),用于设置导师属性和获取导师属性值;

    在主函数中定义相应的指针对象和普通对象,请问可以定义哪些(哪个)类的普通对象,为什么(在实验报告中回答),定义开关变量,int型,通过输入进行赋值,若该值为0,则输出研究生对象的默认属性值,若非零,则依次输入姓名、学号、专业和导师信息,并依次打印出来。

    复制代码
     1 //Student类:
     2 import java.util.*;
     3 public abstract class Student4 {
     4     protected String name="***";
     5     protected int ID=-1;
     6     Student4(){}
     7     Student4(String n,int i){
     8         name=n;
     9         ID=i;
    10     }
    11     public void setnameid() {
    12         System.out.println("请输入姓名、学号:");
    13         Scanner con=new Scanner(System.in);
    14         name=con.next();
    15         ID=con.nextInt();
    16     }
    17     public void displaynameid() {
    18         System.out.println("姓名:"+name+"\t学号:"+ID);
    19     }
    20     public abstract void setmajor();
    21     public abstract String getmajor();
    22     public abstract void setadvisor();
    23     public abstract String getadvisor();
    24 }
    25 //understud类:
    26 import java.util.*;
    27 public class understud extends Student4 {
    28     protected String major="###";
    29     understud(){}
    30     understud(String n,int id,String m){
    31         super(n,id);
    32         major=m;
    33     }
    34     public void setmajor() {
    35         System.out.println("请输入专业:");
    36         Scanner con=new Scanner(System.in);
    37         major=con.next();
    38     }
    39     public String getmajor() {
    40         return major;
    41     }
    42     public void setadvisor() {}
    43     public String getadvisor() {return "0";}
    44 }
    45 //Poststud类:
    46 import java.util.Scanner;
    47 public class poststud extends understud{
    48     private String name2="&&&";
    49     poststud(){}
    50     poststud(String n,int id,String m,String n2){
    51         super(n,id,m);
    52         name2=n2;
    53     }
    54     public void setadvisor() {
    55         System.out.println("请输入导师姓名:");
    56         Scanner con=new Scanner(System.in);
    57         name2=con.next();
    58     }
    59     public String getadvisor() {
    60         return name2;
    61     }
    62 }
    63 //Test类:
    64 import java.util.Scanner;
    65 public class Test4 {
    66     public static void main(String[] args) {
    67         int n;
    68         System.out.println("***************************");
    69         System.out.println("0、输出研究生对象的默认属性值");
    70         System.out.println("1、输入并输出信息");
    71         System.out.println("***************************");
    72         Scanner con=new Scanner(System.in);
    73         n=con.nextInt();
    74         poststud v1=new poststud();
    75         switch(n) {
    76         case 0:{
    77             v1.displaynameid();
    78             System.out.println("专业:"+v1.getmajor());
    79             System.out.println("导师姓名:"+v1.getadvisor());
    80             break;
    81         }
    82         case 1:{
    83             v1.setnameid();
    84             v1.setmajor();
    85             v1.setadvisor();
    86             v1.displaynameid();
    87             System.out.println("专业:"+v1.getmajor());
    88             System.out.println("导师姓名:"+v1.getadvisor());
    89             break;
    90         }
    91         }
    92     }
    93 }

    二、遇到的问题

       对Java中构造函数如何设置默认缺省值不清楚,通过百度得知。

    三、明日计划

      继续完成c++例题的验证。

  • 相关阅读:
    MSN无法登录(错误代码80072745)的解决方法
    C#3.0新体验(二) 扩展方法
    My DreamTech
    让IE崩溃的bug, IE8也一样崩溃
    多线程的相关概念
    10条PHP经验总结
    PHP框架 CI与TP之MVC比较
    多线程设计要点
    Linux yum命令的使用技巧
    BigPipe 的工作原理
  • 原文地址:https://www.cnblogs.com/marr/p/13582867.html
Copyright © 2020-2023  润新知