2016-12-17 279 views
-3

所以我正在学习JAVA,而且我一般只掌握编程语言的基本知识。我写了这个简单的计算器程序来尝试应用我迄今为止学到的东西,但问题在于它不打印年龄,而是打印出0,我不知道为什么:Java get()函数不起作用

this是类

public class userinput { 

private String name; 
private int age; 

public tuna (String name, int age){ 
    name = "dina"; 
    age = 3; 
} 

public void simpleMessage2(){ 
    System.out.println("hello " + name + " ready to use our calculator?"); 
} 

public void setName(String Uname){ 
    name = Uname; 
} 

public void setAge(int uage){ 
    uage = age; 
} 

public String getName(){ 
    return name; 
} 

public int getAge(){ 
    return age; 
} 

public void printname(){ 
    System.out.printf("your name is %s", getName()); 
    System.out.println(); 
} 

public void printage(){ 
    System.out.println("your age is"); 
    System.out.println(getAge()); 
    System.out.println(); 
}} 

,这是主类:

import java.util.Scanner; 

class calc { 
public static void main (String args[]) { 

    String name1; 
    int age1; 

    Scanner bucky = new Scanner(System.in); 
    int choice, num1, num2, sum; 

    System.out.println("Hey, enter your name"); 
    name1 = bucky.nextLine(); 
    System.out.println("Hey, enter your age"); 
    age1 = bucky.nextInt(); 

    tuna objc1 = new userinput(name1, age1); 

    objc1.setName(name1); 
    objc1.printname(); 
    System.out.println(); 

    objc1.setAge(age1); 
    objc1.printage(); 
    System.out.println(); 

    System.out.println("this is a basic calculator, select from the menu:"); 
    System.out.println("Enter 1 for summation"); 
    System.out.println("Enter 2 for subtraction"); 
    System.out.println("Enter 3 for multiplication"); 
    System.out.println("Enter 4 for division"); 
    System.out.println("Enter 5 for module"); 
    System.out.println("Enter 0 to exit"); 

    choice = bucky.nextInt(); 

    while (choice != 0) { 

     switch(choice){ 

     case 1: 
      System.out.println("enter the 1st num"); 
      num1 = bucky.nextInt(); 
      System.out.println("enter the 2nd num"); 
      num2 = bucky.nextInt(); 
      System.out.println("the sum is equal to: "); 
      sum = num1 + num2; 
      System.out.print(sum); 
      System.out.println("Select another operation from the menu or enter 0 to exit"); 
      choice = bucky.nextInt(); 
      break; 

     case 2: 
      System.out.println("enter the 1st num"); 
      num1 = bucky.nextInt(); 
      System.out.println("enter the 2nd num"); 
      num2 = bucky.nextInt(); 
      System.out.println("the sub is equal to: "); 
      sum = num1 - num2; 
      System.out.print(sum); 
      System.out.println("Select another operation from the menu or enter 0 to exit"); 
      choice = bucky.nextInt(); 
      break; 

     case 3: 
      System.out.println("enter the 1st num"); 
      num1 = bucky.nextInt(); 
      System.out.println("enter the 2nd num"); 
      num2 = bucky.nextInt(); 
      System.out.println("the mul is equal to: "); 
      sum = num1 * num2; 
      System.out.print(sum); 
      System.out.println("Select another operation from the menu or enter 0 to exit"); 
      choice = bucky.nextInt(); 
      break; 

     case 4: 
      System.out.println("enter the 1st num"); 
      num1 = bucky.nextInt(); 
      System.out.println("enter the 2nd num"); 
      num2 = bucky.nextInt(); 
      System.out.println("the div is equal to: "); 
      sum = num1/num2; 
      System.out.print(sum); 
      System.out.println("Select another operation from the menu or enter 0 to exit"); 
      choice = bucky.nextInt(); 
      break; 

     case 5: 
      System.out.println("enter the 1st num"); 
      num1 = bucky.nextInt(); 
      System.out.println("enter the 2nd num"); 
      num2 = bucky.nextInt(); 
      System.out.println("the mod is equal to: "); 
      sum = num1 % num2; 
      System.out.print(sum); 
      System.out.println("Select another operation from the menu or enter 0 to exit"); 
      choice = bucky.nextInt(); 
      break; 

     default: 
      System.out.println("Invalid entry, please try again"); 
      choice = bucky.nextInt(); 
      break; 
     } 

     System.out.println("Bye!"); 
    } 
} 
} 
+2

忘记'sql'和'javascript'标签。 –

+3

为什么在上帝的名字你有标签C#和C的Java问题? – smoggers

+1

我不认为你的代码可以编译。为什么不告诉我们一个可执行的代码,并告诉我们您的确切输入,预期和实际输出。你有一个名为'userInput'的类,带有'tuna'构造函数。 – user3437460

回答

0

哪里是金枪鱼类?

tuna objc1 = new userinput(name1, age1); 

的userinput的构造:

public userinput(String n, int a){ 
    name = n; 
    age = a; 
} 

我也是刚学

0

的第一个错误,你不必金枪鱼类中更改错误

tuna objc1 = new userinput(name1,age1); 

userinput objc1 = new userinput(); 

然后我改变像你的代码的方法,你用它在第一类 和第二类,使操作 一流

import java.util.Scanner; 

public class userinput { 

private String name; 
private int age; 

public void simpleMessage2(){ 
    System.out.println("hello " + name + " ready to use our calculator?"); 
} 

public void setName(String Uname){ 
    name = Uname; 
} 

public void setAge(int uage){ 
     age= uage; } 
public void printname(){ 
    System.out.printf("your name is %s", getName()); 
    System.out.println(); 
} 
public void printage(){ 
System.out.printf("your age is %s", getAge()); 
    System.out.println();} 
public int getAge(){ 
    return age; 
} 
public String getName(){ 
    return name; 
} 
} 

第二类

class calc { 
public static void main (String args[]) { 

    String name1; 
    int age1; 

    Scanner bucky = new Scanner(System.in); 
    int choice, num1, num2, sum; 

    System.out.println("Hey, enter your name"); 
    name1 = bucky.nextLine(); 
    System.out.println("Hey, enter your age"); 
    age1 = bucky.nextInt(); 

    userinput objc1 = new userinput(); 

    objc1.setName(name1); 
    objc1.printname(); 
    System.out.println(); 

    objc1.setAge(age1); 
    objc1.printage(); 
    System.out.println(); 
    objc1.simpleMessage2(); 
    System.out.println(); 

    System.out.println("this is a basic calculator, select from the menu:"); 
    System.out.println("Enter 1 for summation"); 
    System.out.println("Enter 2 for subtraction"); 
    System.out.println("Enter 3 for multiplication"); 
    System.out.println("Enter 4 for division"); 
    System.out.println("Enter 5 for module"); 
    System.out.println("Enter 0 to exit"); 

    choice = bucky.nextInt(); 

    while (choice != 0) { 

     switch(choice){ 

     case 1: 
      System.out.println("enter the 1st num"); 
      num1 = bucky.nextInt(); 
      System.out.println("enter the 2nd num"); 
      num2 = bucky.nextInt(); 
      System.out.println("the sum is equal to: "); 
      sum = num1 + num2; 
      System.out.println(sum); 
      System.out.println("Select another operation from the menu or enter 0 to exit"); 
      choice = bucky.nextInt(); 
      break; 

     case 2: 
      System.out.println("enter the 1st num"); 
      num1 = bucky.nextInt(); 
      System.out.println("enter the 2nd num"); 
      num2 = bucky.nextInt(); 
      System.out.println("the sub is equal to: "); 
      sum = num1 - num2; 
      System.out.println(sum); 
      System.out.println("Select another operation from the menu or enter 0 to exit"); 
      choice = bucky.nextInt(); 
      break; 

     case 3: 
      System.out.println("enter the 1st num"); 
      num1 = bucky.nextInt(); 
      System.out.println("enter the 2nd num"); 
      num2 = bucky.nextInt(); 
      System.out.println("the mul is equal to: "); 
      sum = num1 * num2; 
      System.out.println(sum); 
      System.out.println("Select another operation from the menu or enter 0 to exit"); 
      choice = bucky.nextInt(); 
      break; 

     case 4: 
      System.out.println("enter the 1st num"); 
      num1 = bucky.nextInt(); 
      System.out.println("enter the 2nd num"); 
      num2 = bucky.nextInt(); 
      System.out.println("the div is equal to: "); 
      sum = num1/num2; 
      System.out.println(sum); 
      System.out.println("Select another operation from the menu or enter 0 to exit"); 
      choice = bucky.nextInt(); 
      break; 

     case 5: 
      System.out.println("enter the 1st num"); 
      num1 = bucky.nextInt(); 
      System.out.println("enter the 2nd num"); 
      num2 = bucky.nextInt(); 
      System.out.println("the mod is equal to: "); 
      sum = num1 % num2; 
      System.out.println(sum); 
      System.out.println("Select another operation from the menu or enter 0 to exit"); 
      choice = bucky.nextInt(); 
      break; 

     default: 
      System.out.println("Invalid entry, please try again"); 
      choice = bucky.nextInt(); 
      break; 
     } 


    } 
    System.out.println("Bye!");} 


} 

我希望我帮你