所以我必須創建一個類和方法來獲取用戶輸入和一個列印出來
在我列印出數字之后。我應該創建繼承類并列印出相同的數字,但使用它們的索引,我怎樣才能從第一類獲取數字資料?
public class Main {
public static void main(String[] args) {
// write your code here
OriginalMethod firstoutput = new OriginalMethod();
firstoutput.OriginalMethod();
firstoutput.out();
overki newki = new overki();
newki.out();
}
static class OriginalMethod {
public int []tomb = new int[3];
public void OriginalMethod(){
for(int i = 0; i<3;i )
{
Scanner beolvas = new Scanner(System.in);
System.out.println("Enter the " (i 1) ".number");
tomb[i] = beolvas.nextInt();
}
}
public void out()
{
for(int i = 0; i<3;i )
{
System.out.print(tomb[i] " ");
}
}
}
static class overki extends OriginalMethod {
@Override
public void out()
{
System.out.println();
for(int i = 0; i<3;i )
{
System.out.println(i ". " tomb[i]);
}
}
}
}
uj5u.com熱心網友回復:
我認為您混淆了類和實體(物件)的概念。
看來您只需要一個實體 - 子類的實體。
overki newki = new overki();
newki.OriginalMethod();
newki.out();
newki.out();
看起來該方法OriginalMethod應該是一個建構式 - 虛假void是一個常見的錯誤。所以改變:
public void OriginalMethod(){
到:
public OriginalMethod() {
并洗掉該行:
newki.OriginalMethod();
uj5u.com熱心網友回復:
這并不是我學習用 Java 撰寫類的真正方式(我學會了在專案的包中創建新的 Java 類,而不是直接在Main Class中創建大量類)。這將允許您創建建構式,然后通過使用super關鍵字甚至通過一些getter-setter輕松傳遞變數。但是,對于您提供的代碼,我找到的最簡單的解決方案是:
public class Main {
public static void main(String[] args) {
int[]tomb;
OriginalMethod firstoutput = new OriginalMethod();
tomb = firstoutput.OriginalMethod();
firstoutput.out(tomb);
overki newki = new overki();
newki.out(tomb);
}
static class OriginalMethod {
public int[] OriginalMethod(){
int []tomb = new int[3];
for(int i = 0; i<3;i )
{
Scanner beolvas = new Scanner(System.in);
System.out.println("Enter the " (i 1) ".number");
tomb[i] = beolvas.nextInt();
}
return tomb;
}
public void out(int[]tomb)
{
for(int i = 0; i<3;i )
{
System.out.print(tomb[i] " ");
}
}
}
static class overki extends OriginalMethod {
@Override
public void out(int[]tomb)
{
System.out.println();
for(int i = 0; i<3;i )
{
System.out.println(i ". " tomb[i]);
}
}
}
}
請允許我解釋一下我改變了什么。首先,我將int[]tomb變數移出OriginalMethod類并進入Main。然后,我更改了OriginalMethod它以使其回傳一個 int 陣列。因此,您可以OriginalMethod通過撰寫tomb = firstoutput.OriginalMethod(). 從那里,您只需更改您的out方法,以便它們都接收我們在Main中創建的這個陣列(因為第二個out()方法是Override,它們絕對有必要在它們的引數中接收相同的東西)。
好吧,它成功了。現在,完美了嗎?可能不是。正如我所說,如果我自己這樣做,我可能會使用getter-setter,但是從您的原始代碼開始,這是我找到的最簡單的解決方案!
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/443833.html
