何时在Java中使用参数化方法与参数化构造函数

时间:2015-07-10 04:50:03

标签: java methods constructor parameterized

我刚刚开始学习Java,并从Java第九版Herber Schildt [第6章]开始讨论参数化方法和参数化构造函数,

我理解如何声明它们以及它们如何工作,但我对它们的用法感到困惑,何时使用参数化方法以及何时使用参数化构造函数? < / p>

请举个简单类比的例子。

3 个答案:

答案 0 :(得分:0)

它们的主要区别在于返回类型。构造函数不返回任何内容,甚至无效。在实例化类时运行构造函数。另一方面,parameterized methods用于类型安全,即允许不同的类而不进行转换。

 public class Person {

        String name ;
        int id;

//Default constructor
        Person(){

        }

//Parameterized constructor
        Person(String name, int id){
            this.name = name;
            this.id = id;

        }

        public static void main(String[] args) {
            Person person = new Person("Jon Snow",1000); // class instantiation which set the instance variables name and id via the parameterised constructor

            System.out.println(person.name); //Jon Snow
            System.out.println(person.id); //1000

            Person person1 = new Person(); //Calls the default constructor and instance variables are not set

            System.out.println(person1.name); //null
            System.out.println(person1.id); //0
        }

    }

答案 1 :(得分:0)

首先,您应该了解构造函数的实际含义。

您可以将“构造函数”视为在为类创建对象时调用的函数。在类中,您可以拥有许多实例变量,即该类的每个对象都有自己的实例变量副本。因此,无论何时使用new ClassName (args)语句创建新对象,都可以在构造函数中初始化该对象的实例变量的值,因为每当您实例化对象时都会首先调用它。记住构造函数只在创建对象时被调用一次。

此外,有两种方法实例和静态方法。两种类型都可以接受参数。如果使用静态参数化方法,则无法在类的对象上调用该方法,因为它们可以对类的静态变量进行操作。

实例参数化方法可以使用类的实例和静态成员,并在对象上调用它们。它们表示在您调用方法的Object上执行某些操作的机制。在这些方法(静态和实例)中传递的参数可以作为您要完成的操作的输入。 与在对象的instatantion上只调用一次的构造函数不同,您可以根据需要多次调用这些方法。

另一个经典的区别是构造函数总是返回对象的引用。这是默认的隐式行为,我们不需要在签名中明确指定。 但是,方法可以根据您的选择返回任何内容。

示例:

public class A {

    String mA;

     /* Constructor initilaizes the instance members */
     public A (String mA) { 
         this.mA = mA;
     } 

     /* this is parameterized method that takes mB as input
        and helps you operate on the object that has the instance
        member mA */

     public String doOperation (String mB) {
         return mA + " " + mB;
     }

     public static void main(String args[]) {

          /* this would call the constructor and initialize the instance variable with "Hello" */
         A a = new A("Hello");

        /* you can call the methods as many times as            you want */
        String b=  a.doOperation ("World");
        String c = a.doOperation ("How are you");

     }
}

答案 2 :(得分:0)

方法&amp;构造函数是完全不同的概念和用途不同。

构造函数被指定用于在对象创建时初始化对象和任何设置/数据集。您不能再次调用构造函数&amp;再次。每个Object将调用一次(您可以从该类的另一个构造函数中调用一个构造函数)

方法是一个功能单元,您可以根据需要调用/重用它们。

希望这很有帮助 谢谢,