簡體   English   中英

在java類的main方法中傳遞參數

[英]Passing arguments in main method in java class

有人能告訴我需要聲明這樣一個類:

public class Test {

 String k;
 public Test(String a, String b, String c){
  k = a + " " + b + " " + c; //do something

 }

 public void run(){
  System.out.println(k);
 }

 public static void main(String[] args) {
  String l = args[0];
  String m = args[1];
  String n = args[2];
  Test obj = new Test(l,m,n);
  obj.run();
 }

}

當然它可以工作,但我不明白為什么會用這種方式來實現某些東西。 是因為我們需要將參數直接傳遞給類main方法,這就是我們使用這種方式的原因還是有其他原因?

public Test(...)使用相同類名的目的是什么。 為什么會這樣?

public Test(...)是一個構造函數 ,其目的是創建對象。 從示例代碼中可以清楚地看到這一點......

Test obj = new Test(l,m,n);

變量obj通過分配給Test的構造函數實例化為對象Test 在Java中,每一個構造函數必須具有完全相同的名稱(情況),因為它是用Java文件(在你的情況的構造函數Test中Test.java被發現)。

......為什么會這樣?

這一切都取決於你想對你的對象做什么。 你可以有一個零參數構造函數(即不需要參數),並有方法設置你的lmn ,如下所示:

package net;


public class Test {

    private String k;

    /**
     * 
     */
    public Test() {
        super();
        // TODO Auto-generated constructor stub
    }

    public void set(String a, String b, String c) {
         k = a + " " + b + " " + c; //do something
    }

    public void run() {
        System.out.println(k);
    }

    public static void main(String[] args) {
        String l = args[0];
        String m = args[1];
        String n = args[2];
        Test obj = new Test();
        obj.set(l, m, n);
        obj.run();
    }
}

正如您所看到的,它與您的示例完全相同,但使用零參數構造函數。

如果你的類根本沒有構造函數,java會自動為你添加一個公共零參數構造函數。

希望這可以幫助。

名為Test的方法是Test類的所謂構造函數 構造函數是在編寫類似new Test(...)的函數時調用的方法。

請記住, main方法是static方法,這意味着它不需要調用類Test的實例。 run方法不是這種情況。 run是一個實例方法,要調用它,您需要一個Test類的實例(在您的情況下為obj )。

公共Test(...)位是該類的構造函數。 它始終與類同名。 類和主要方法是編程的兩個完全不同的方面。 類定義具有狀態和方法的可重用組件。 main方法是從命令行調用的特殊方法。

你的例子是如此微不足道,它並沒有真正顯示面向對象編程的任何好處。 如果您考慮一個示例,其中您有不同的類交互,您可能會對它有更多的感覺。

main方法是程序的入口點,在從命令行運行java Test時調用。

public Test(String a, String b, String c)Test類的public構造函數 ,在調用new Test(l,m,n);時調用new Test(l,m,n); 注意,構造函數中的a和main方法中的l引用相同的String ...這也適用於bm ; cn

作為旁注,此類期望從命令行傳遞三個值,然后將它們存儲在lmn

最后一點說明:如果你有一個帶有簽名public void run() ,你的類應該可以實現 Runnable以便它可以在Thread

學習Java。

構造函數是一個被調用來創建一個對象的函數,它由一個與該類同名的函數表示,但沒有返回類型。 可以使用不同的參數聲明多個構造函數。

在這種情況下,參數從參數數組中取出,並作為參數傳遞給Test的構造函數。

這些是Java編程語言的基本概念。 你應該閱讀Java。 嘗試用Java思考 ,這是一本很好的入門書。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM