英文:
How can my 2nd constructor parameter work?
问题
import java.util.Scanner;
class BloodData {
    static Scanner in = new Scanner(System.in);
    static String bloodType;
    static String rhFactor;
    public BloodData() {
        bloodType = "O";
        rhFactor = "+";
    }
    public BloodData(String bt, String rh) {
        bloodType = bt;
        rhFactor = rh;
    }
    public void display() {
        System.out.println(bloodType + rhFactor + " is added to the blood bank");
    }
    public static void main(String[] args) {
        System.out.println("Enter Blood Type(O, A, B, AB)");
        System.out.println("Enter rhFactor('+' or '-')");
        BloodData bd = new BloodData(BloodData.bloodType = in.nextLine(), BloodData.rhFactor = in.nextLine());
        BloodData bd1 = new BloodData();
        bd.display();
    }
}
英文:
       import java.util.Scanner;
       class BloodData{
            static Scanner in = new Scanner(System.in);
            static String bloodType;
            static String rhFactor;
 
         public BloodData(){
            bloodType = "O";
            rhFactor = "+";
       }
         public BloodData(String bt, String rh){
           bloodType = bt;
           rhFactor = rh;
       }
         public void display() {
           System.out.println(bloodType+rhFactor+" is added to the blood bank");
       }
         public static void main(String[]args) {
           System.out.println("Enter Blood Type(O, A, B, AB)");
           System.out.println("Enter rhFactor('+' or '-')");
           BloodData bd= new 
           BloodData(BloodData.bloodType=in.nextLine(),BloodData.rhFactor=in.nextLine());
           BloodData bd1= new BloodData();
           bd.display();
        }
      }
How can i use the constructor with 2 String parameters? because when I always run the code the first one only run. I'm only a beginner so hope someone could help because I already watched a lot of Youtube vids and I really didn't know why this happens
答案1
得分: 1
Java不使用像这样的命名参数来调用方法或构造函数。如果有视频展示这样的语法,我会感到惊讶...
new BloodData(BloodData.bloodType=in.nextLine(), BloodData.rhFactor=in.nextLine())
你需要在上一行中定义String变量,然后将它们传递给构造函数。你也不应该将实例构造函数与静态变量结合使用。
class BloodData {
    private String bloodType;
    private String rhFactor;
    public BloodData(String type, String rhFactor) {
        this.bloodType = type;
        this.rhFactor = rhFactor;
    }
    // 其他代码...
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String x = in.nextLine();
        String y = in.nextLine();
        BloodData bd = new BloodData(x, y);
    }
}
英文:
Java doesn't use named parameters like this for method or constructors. I would be surprised if a video showed such syntax...
new BloodData(BloodData.bloodType=in.nextLine(),BloodData.rhFactor=in.nextLine())
You need to define String variables on the line above, then pass them into the constructor. You also shouldn't be combining instance constructors with static variables
   class BloodData{
        private String bloodType;
        private String rhFactor;
        public BloodData(String type, String rhFactor) {
            this.bloodType = type;
            this.rhFactor = rhFactor;
        }
   ...
        public static void main(String[] args) {
            Scanner in = new Scanner(System.in);
            String x = in.nextLine();
            String y = in.nextLine();
            BloodData bd = new BloodData(x, y);
        }
答案2
得分: 0
如果你想调用一个有两个参数的构造函数:使用 this
BloodData blooddata = new BloodData("A", "+");
英文:
if you want to call a constructor having two parameters: Use this
BloodData blooddata = new BloodData("A","+");
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。


评论