Java 为什么我的变量不能接收值(接口)

Java 为什么我的变量不能接收值(接口),java,interface,implements,Java,Interface,Implements,我在发送变量值时遇到问题。为什么我的变量在输入值时无法接收值?我不知道该怎么做 import java.io.*; public class StudentApp { public static void main (String [] args) throws IOException { student studentObject = new GradeResult(); studentObject.getName(); student studentObject2

我在发送变量值时遇到问题。为什么我的变量在输入值时无法接收值?我不知道该怎么做

import java.io.*;
public class StudentApp {
public static void main (String [] args) throws IOException {

    student studentObject = new GradeResult();
    studentObject.getName();
    student studentObject2 = new GradeResult();
    studentObject2.getIdNum();
    student studentObject3 = new GradeResult();
    studentObject3.getMark();
    student studentObject4 = new GradeResult();
    studentObject4.setName();
    student studentObject5 = new GradeResult();
    studentObject5.setIdNum();
    student studentObject6 = new GradeResult();
    studentObject6.setMark();
    student studentObject7 = new GradeResult();
    studentObject7.showGrade();
    student studentObject8 = new GradeResult();
    studentObject8.showResult();
}

interface StudentInterface{
    void getName() throws IOException;
    void getIdNum()throws IOException;
    void setName();
    void setIdNum();
    void getMark()throws IOException;
    void setMark();
}

interface student extends StudentInterface{
    void showResult();
    void showGrade();
}

class GradeResult implements student {
    String name ,name2 ,name3;
    int a ,mark;

    public void getName () throws IOException {
        InputStreamReader inStream = new InputStreamReader(System.in);
        BufferedReader stdin = new BufferedReader(inStream);
        System.out.print("Please Input Your Name :");
        name = stdin.readLine();

    }

    public void getIdNum()throws IOException {
        BufferedReader stdin=new BufferedReader (new InputStreamReader(System.in));
        System.out.print("Please Input Your ID Number :");
        name2 = stdin.readLine();
        a = Integer.parseInt(name2);
    }

    public void setName() {
        System.out.print("Your Name :"+name);
    }

    public void setIdNum() {    
        System.out.print("\nYour ID Number :"+name2);
    }

    public void getMark()throws IOException {
        BufferedReader stdin=new BufferedReader (new InputStreamReader(System.in));
        System.out.print("Please Input Your Mark :");
        name3 = stdin.readLine();
        mark = Integer.parseInt(name3);
    }

    public void setMark() {
        System.out.print("\nYour Mark :"+mark);
    }

    public void showResult() {
        if ((mark>=40)&&(mark<=100)) {
            System.out.print("\nYou Are PASS");
        } else {
            System.out.print("\nYou Are FAIL");
        }
    }

    public void showGrade() {
        if((mark>=80)&&(mark<=100)) {
            System.out.print("\nYour Grade Is A");
        } else if ((mark>=65)&&(mark<=80)) {
            System.out.print("\nYour Grade Is B");
        } else if ((mark>=50)&&(mark<=65)) {
            System.out.print("\nYour Grade Is C");
        } else if ((mark>=40)&&(mark<=50)) {
            System.out.print("\nYour Grade Is D");
        } else {
            System.out.print("\nYour Grade Is E");
        }
    }
}
import java.io.*;
公共班级学生pp{
公共静态void main(字符串[]args)引发IOException{
student studentObject=新成绩结果();
studentObject.getName();
student StudentObject 2=新成绩结果();
studentObject2.getIdNum();
student studentObject3=新成绩();
studentObject3.getMark();
student studentObject4=新成绩();
studentObject4.setName();
student studentObject5=新成绩();
studentObject5.setIdNum();
student studentObject6=新成绩();
studentObject6.setMark();
student studentObject7=新成绩();
研究对象7.showGrade();
student studentObject8=新成绩();
studentObject8.showResult();
}
界面学生界面{
void getName()抛出IOException;
void getIdNum()引发IOException;
void setName();
void setIdNum();
void getMark()抛出IOException;
无效设置标记();
}
学生界面扩展学生界面{
void showResult();
void showGrade();
}
班级成绩结果实现学生成绩{
字符串名,name2,name3;
INTA,标记;
public void getName()引发IOException{
InputStreamReader inStream=新的InputStreamReader(System.in);
BufferedReader stdin=新的BufferedReader(流内);
系统输出打印(“请输入您的姓名:”);
name=stdin.readLine();
}
public void getIdNum()引发IOException{
BufferedReader stdin=新的BufferedReader(新的InputStreamReader(System.in));
系统输出打印(“请输入您的身份证号码:”);
name2=stdin.readLine();
a=整数.parseInt(name2);
}
public void setName(){
系统输出打印(“您的姓名:+姓名”);
}
public void setIdNum(){
系统输出打印(“\n您的ID号:“+name2”);
}
public void getMark()引发IOException{
BufferedReader stdin=新的BufferedReader(新的InputStreamReader(System.in));
系统输出打印(“请输入您的标记:”);
name3=stdin.readLine();
mark=Integer.parseInt(name3);
}
公共无效设置标记(){
系统输出打印(“\n您的标记:“+标记”);
}
公开无效显示结果(){

如果((标记>=40)&&&(标记=80)&&&(标记=65)&&&(标记=50)&&&(标记=40)&&&(标记您每次都在创建新对象,因此您的结果会放在不同的对象中

试试这个:

student studentObject = new GradeResult();
studentObject.getName();
studentObject.setName();

编辑:如果您不知道,实例变量值保存在一个对象中。因此,所有不同的对象(属于同一类)将具有不同的名称、名称2、名称3等。从中调用System.out.println(…)方法的对象具有未初始化的实例变量(名称、名称2、名称3)因此不会为这些对象打印任何值。

您每次都在创建新对象,因此您的结果会被放入不同的对象中

试试这个:

student studentObject = new GradeResult();
studentObject.getName();
studentObject.setName();

编辑:如果您不知道,实例变量值保存在一个对象中。因此,所有不同的对象(属于同一类)将具有不同的名称、名称2、名称3等。从中调用System.out.println(…)方法的对象具有未初始化的实例变量(名称、名称2、名称3)因此不会为这些对象打印任何值。

您每次都在创建新对象,因此您的结果会被放入不同的对象中

试试这个:

student studentObject = new GradeResult();
studentObject.getName();
studentObject.setName();

编辑:如果您不知道,实例变量值保存在一个对象中。因此,所有不同的对象(属于同一类)将具有不同的名称、名称2、名称3等。从中调用System.out.println(…)方法的对象具有未初始化的实例变量(名称、名称2、名称3)因此不会为这些对象打印任何值。

您每次都在创建新对象,因此您的结果会被放入不同的对象中

试试这个:

student studentObject = new GradeResult();
studentObject.getName();
studentObject.setName();

编辑:如果您不知道,实例变量值保存在一个对象中。因此,所有不同的对象(属于同一类)将具有不同的名称、名称2、名称3等。从中调用System.out.println(…)方法的对象具有未初始化的实例变量(名称、名称2、名称3)因此不会打印这些值。

最好的解决方案是在
GradeResult
类中执行以下操作

private static String name, name2, name3;
private static int a, mark;
这会有用的

输出:

Please Input Your Name :Mohammad
Please Input Your ID Number :10001
Please Input Your Mark :85
Your Name :Mohammad
Your ID Number :10001
Your Mark :85
Your Grade Is A
You Are PASS

最好的解决方案是在
GradeResult
课程中执行以下操作

private static String name, name2, name3;
private static int a, mark;
这会有用的

输出:

Please Input Your Name :Mohammad
Please Input Your ID Number :10001
Please Input Your Mark :85
Your Name :Mohammad
Your ID Number :10001
Your Mark :85
Your Grade Is A
You Are PASS

最好的解决方案是在
GradeResult
课程中执行以下操作

private static String name, name2, name3;
private static int a, mark;
这会有用的

输出:

Please Input Your Name :Mohammad
Please Input Your ID Number :10001
Please Input Your Mark :85
Your Name :Mohammad
Your ID Number :10001
Your Mark :85
Your Grade Is A
You Are PASS

最好的解决方案是在
GradeResult
课程中执行以下操作

private static String name, name2, name3;
private static int a, mark;
这会有用的

输出:

Please Input Your Name :Mohammad
Please Input Your ID Number :10001
Please Input Your Mark :85
Your Name :Mohammad
Your ID Number :10001
Your Mark :85
Your Grade Is A
You Are PASS

为该对象创建对象集值,并从同一对象访问值。在您的情况下,您正在为某个对象设置值,并从另一个对象访问数据,这就是为什么某些字段会得到
null

public static void main (String [] args) throws IOException{

    student studentObject = new GradeResult();
    studentObject.getName();
    studentObject.getIdNum();
    studentObject.getMark();
    studentObject.setName();
    studentObject.setIdNum();
    studentObject.showGrade();

    studentObject.showResult();
}

为该对象创建对象集值,并从同一对象访问值。在您的情况下,您正在为某个对象设置值,并从另一个对象访问数据,这就是为什么某些字段会得到
null

public static void main (String [] args) throws IOException{

    student studentObject = new GradeResult();
    studentObject.getName();
    studentObject.getIdNum();
    studentObject.getMark();
    studentObject.setName();
    studentObject.setIdNum();
    studentObject.showGrade();

    studentObject.showResult();
}

为该对象创建对象集值,并从同一对象访问值。在您的情况下,您正在为某个对象设置值,并从另一个对象访问数据,这就是为什么某些字段会得到
null

public static void main (String [] args) throws IOException{

    student studentObject = new GradeResult();
    studentObject.getName();
    studentObject.getIdNum();
    studentObject.getMark();
    studentObject.setName();
    studentObject.setIdNum();
    studentObject.showGrade();

    studentObject.showResult();
}

为该对象创建对象集值,并从同一对象访问值。在您的情况下,您正在为某个对象设置值,并从另一个对象访问数据,这就是为什么某些字段会得到
null

public static void main (String [] args) throws IOException{

    student studentObject = new GradeResult();
    studentObject.getName();
    studentObject.getIdNum();
    studentObject.getMark();
    studentObject.setName();
    studentObject.setIdNum();
    studentObject.showGrade();

    studentObject.showResult();
}

你得到了什么输出?我只得到了“null”…你得到了什么输出?我只得到了“null”…你得到了什么输出?