2011-07-26 23 views
0

帮助我不得不做一个Java程序,说:一个简单的Java程序我需要

在Java编写一个程序来实现继承。您的程序应该具有以下结构

  1. 创建一个基类以保存两个整数和一个显示它们的方法。
  2. 在派生类中添加另一个整数并显示它。
  3. 在相同的派生类中创建一个方法来添加三个数字。
  4. 将值传递给整数并显示结果。

,我并不擅长Java,所以我不知道我所做的是对还是错还是什么!我觉得我不明白需要什么。以下是我想出了:

public class firstclass { 
    int a=5; 
    int b=6; 

    public void Display(){ 
     System.out.println(a+b); 
    } 
} 

public class secondclass extends firstclass { 
    int z=0; 

    public void Displaysecond(){ 
     System.out.println(z); 
    } 

    public void add(){ 
     z=a+b; 
     System.out.println(z); 
    } 
} 

public class mainOne { 
    public static void main(String[] args) { 
     firstclass call = new firstclass(); 
     secondclass call2 = new secondclass(); 

     call.Display(); 
     call2.Displaysecond(); 
     call2.add(); 
    } 
} 

它运行没有任何问题,但我得到 “11” 为“的System.out.println(A + B );”而a = 5和b = 6。
我是否正确地处理这个问题?

+0

添加功课标签可能? –

+11

是不是5 + 6 = 11? –

+0

@Ziyao很确定OP想要5 + 6 = 56 – dlev

回答

3

你有几个问题。正如Grammin提到的,你的增加功能不是你的老师想要的。你的老师希望你到a,b和z。所以

public void add(){ 
    int sum = a + b + z; 
    System.out.println(sum); 
} 

或者,你可以做void add()int add(),并返回sum

其次,你没有遵循Java约定。您的变量需要更加不恰当的命名,您的类需要以大写字母开头,您的方法需要以小写字母开头。

也许你应该命名你的类FirstClass,SecondClass和MainClass?

你的方法:显示(),displaySecond(),并添加()

你的变量:A,B,C或NUM1,NUM2,NUM3。 (为了一致性)

此外,call.display()应该产生与call2.display()相同的结果,因为SecondClass是FirstClass的子类。为了更好地理解继承,请阅读this

附注:如果您正在进行某种内嵌数学运算,您应该在括号()中添加数字以进行说明和安全。例如

public void display(){ 
    System.out.println((a + b)); 
} 

,而不是

public void display(){ 
    System.out.println(a+b); 
} 
+0

伟大的提示,我真的很喜欢他们,并没有他们,谢谢 – user863751

+1

括号的双套是不必要的。 –

+0

你确定吗?我知道我以前遇到过这个问题。我想如果你有任何引号,你确实需要嵌套的括号。 –

3

一切看起来都不错,除了:

3. Create a method in the same derived Class to add the three numbers. 

public void add() 
{ 
    z=a+b; 
    System.out.println(z); 
} 

这种方法增加了A和B,但然后把它沿z。它不返回任何东西,所以应该是这样的:

public int add() 
{ 
    return a+b+z; 
} 

然后在主你应该是这样的:

System.out.println(call2.add()); 
+0

谢谢@Grammin我完全忘记了,集结感谢的人,但关于“System.out.println(a + b)”为什么我得到11? sholdent我得到5 6? – user863751

+0

System.out.println(a + b) - 您将得到11,因为a + b实际上被评估为数学运算。如果你想得到5 6,那么你会做一些像System.out.println(a +“”+ b)。在这种情况下,+符号被视为字符串concat –