Inheritance 跟踪执行和继承java

Inheritance 跟踪执行和继承java,inheritance,encapsulation,trace,Inheritance,Encapsulation,Trace,我是Java新手。如何跟踪此程序的执行?这个程序是正确地传递继承,还是仅仅传递一个没有继承的普通封装 我只是想知道我是否真的在这些类中传递了继承。非常感谢您的回复 这是第一个类,TestMembers: public class TestMembers { public static void main (String args []){ Members Ailee=new Members("Ailee","52213116028","BRS",2,1.6,45);

我是Java新手。如何跟踪此程序的执行?这个程序是正确地传递继承,还是仅仅传递一个没有继承的普通封装

我只是想知道我是否真的在这些类中传递了继承。非常感谢您的回复

这是第一个类,
TestMembers

public class TestMembers {

    public static void main (String args []){

        Members Ailee=new Members("Ailee","52213116028","BRS",2,1.6,45);
        Members Amy=new Members("Amy","52213116032","BDR",2,1.63,57);
        Members Jack=new Members("Jack","52213116201","BRE",2,1.75,82);

        String[] member = { "Ailee","Amy", "Jack"};
        JFrame frame = new JFrame();
        String teammembers = (String) JOptionPane.showInputDialog(frame, "Team 
        Members","Team members",
        JOptionPane.QUESTION_MESSAGE,null,member, member[0]);

        if (teammembers==member[0]){
            JOptionPane.showMessageDialog(null,Ailee,"Member Profile", 
            JOptionPane.INFORMATION_MESSAGE);
        } else if (teammembers==member[1]){
            JOptionPane.showMessageDialog(null,Amy,"Member Profile", 
            JOptionPane.INFORMATION_MESSAGE);
        } else if (teammembers==member[2]){
            JOptionPane.showMessageDialog(null,Jack,"Member Profile", 
            JOptionPane.INFORMATION_MESSAGE);
        }
        System.exit(0);
    }
}
public class Members extends Student{

    private double bmi;
    private String bmistatus;

    public Members(String name,String id_number, String course, int semester, 
        double height, double weight){
        setPersonname(name);
        setStudentIdNumber(id_number);
        setStudentCourse(course);
        setStudentSemester(semester);
        setPersonHeight(height);
        setPersonWeight(weight);
    }

    public double getMemberBMI(){
        bmi= getPersonWeight()/(getPersonHeight()*getPersonHeight());
        DecimalFormat twoDForm = new DecimalFormat("#.00");
        return Double.valueOf(twoDForm.format(bmi));
    }

    public String BMIstatus(){
        if (bmi>= 18.5 & bmi <= 25.0){
            return bmistatus= "Optimal weight";
        } else if (bmi<18.5){
            return bmistatus="Underweight";
        } else if (bmi>25.0){
            return bmistatus="Overweight";
        }
        return bmistatus;
    }

    public String toString() {
        return "Name: " + getPersonname() + "\nID: " + getStudentIdNumber() 
        +"\nCourse: 
        " + getStudentCourse()+
        "\nSem: " + getStudentSemester()+"\nHeight: "+getPersonHeight()+" metre"+
        "\nWeight: "+getPersonWeight()+" kg"+"\nBMI:"+getMemberBMI()+"\nBMI         status 
        :"+BMIstatus();
    }
}
这是另一个类,
Person

public class Person {

    private String name;
    private double height;
    private double weight;

    public void setPersonname(String name){
        this.name=name;
    }

    public String getPersonname(){
        return name;
    }

    public void setPersonHeight(double height){
        this.height=height;
    }

    public double getPersonHeight(){
        return height;
    }

    public void setPersonWeight(double weight){
        this.weight=weight;
    }

    public double getPersonWeight(){
        return weight;
    }
}
这是第三节课,
学生

public class Student extends Person{

    private String id_number;
    private String course;
    private int semester;

    public void setStudentIdNumber(String id_number){
        this.id_number=id_number;
    }

    public String getStudentIdNumber(){
        return id_number;
    }

    public void setStudentCourse(String course){
        this.course=course;
    }

    public String getStudentCourse(){
        return course;
    }

    public void setStudentSemester(int semester){
        this.semester=semester;
    }

    public int getStudentSemester(){
        return semester;
    }
}
这是第四节课,
成员

public class TestMembers {

    public static void main (String args []){

        Members Ailee=new Members("Ailee","52213116028","BRS",2,1.6,45);
        Members Amy=new Members("Amy","52213116032","BDR",2,1.63,57);
        Members Jack=new Members("Jack","52213116201","BRE",2,1.75,82);

        String[] member = { "Ailee","Amy", "Jack"};
        JFrame frame = new JFrame();
        String teammembers = (String) JOptionPane.showInputDialog(frame, "Team 
        Members","Team members",
        JOptionPane.QUESTION_MESSAGE,null,member, member[0]);

        if (teammembers==member[0]){
            JOptionPane.showMessageDialog(null,Ailee,"Member Profile", 
            JOptionPane.INFORMATION_MESSAGE);
        } else if (teammembers==member[1]){
            JOptionPane.showMessageDialog(null,Amy,"Member Profile", 
            JOptionPane.INFORMATION_MESSAGE);
        } else if (teammembers==member[2]){
            JOptionPane.showMessageDialog(null,Jack,"Member Profile", 
            JOptionPane.INFORMATION_MESSAGE);
        }
        System.exit(0);
    }
}
public class Members extends Student{

    private double bmi;
    private String bmistatus;

    public Members(String name,String id_number, String course, int semester, 
        double height, double weight){
        setPersonname(name);
        setStudentIdNumber(id_number);
        setStudentCourse(course);
        setStudentSemester(semester);
        setPersonHeight(height);
        setPersonWeight(weight);
    }

    public double getMemberBMI(){
        bmi= getPersonWeight()/(getPersonHeight()*getPersonHeight());
        DecimalFormat twoDForm = new DecimalFormat("#.00");
        return Double.valueOf(twoDForm.format(bmi));
    }

    public String BMIstatus(){
        if (bmi>= 18.5 & bmi <= 25.0){
            return bmistatus= "Optimal weight";
        } else if (bmi<18.5){
            return bmistatus="Underweight";
        } else if (bmi>25.0){
            return bmistatus="Overweight";
        }
        return bmistatus;
    }

    public String toString() {
        return "Name: " + getPersonname() + "\nID: " + getStudentIdNumber() 
        +"\nCourse: 
        " + getStudentCourse()+
        "\nSem: " + getStudentSemester()+"\nHeight: "+getPersonHeight()+" metre"+
        "\nWeight: "+getPersonWeight()+" kg"+"\nBMI:"+getMemberBMI()+"\nBMI         status 
        :"+BMIstatus();
    }
}
公共类成员扩展了学生{
私人双bmi;
私有字符串状态;
公共成员(字符串名称、字符串id_编号、字符串课程、整数学期、,
双高,双重){
setPersonname(名称);
设置学生编号(id_编号);
设置学生课程(课程);
设置学生学期(学期);
设置人员高度(高度);
设定个人体重(重量);
}
公共双getMemberBMI(){
bmi=getPersonWeight()/(getPersonHeight()*getPersonHeight());
DecimalFormat twoDForm=新的DecimalFormat(“#.00”);
返回Double.valueOf(twoDForm.format(bmi));
}
公共字符串状态(){

如果(bmi>=18.5&bmi我认为,继承在语法上是正确的。从设计的角度来看,它取决于更广泛的上下文

关于软件设计,没有简单的学习方法。你可能想阅读关于或(按此顺序)的书籍。它们会教你很多基本规则。但是,你也需要从日常工作中学习,这样你就可以学习如何应用这些规则

关于跟踪,您可以使用
记录器
,也可以简单地使用
系统输出
,例如:

private static final Logger logger = Logger.getInstance(TestMembers.class);
...
if (teammembers==member[0]) {
    logger.debug("first member");
}
...

此外,我建议删除尾随的
System.exit(0)
;还有其他方法可以做到这一点。

在类内部和类之间添加了格式