【问题标题】:new to java constructor help neededjava构造函数的新手需要帮助
【发布时间】:2013-11-13 15:24:37
【问题描述】:

我有一个过去的考试问题,上面写着: “创建一个类Element,它将元素的名称记录为String,并有一个公共方法toString,它返回字符串名称。为该类定义一个构造函数(应该接收一个String来初始化名字)。”

我试了一下,不知道从哪里开始......

主类是:

public class builder { 
public static void main(String[] args) { 
    element builderObject = new element(elementName);

}
}

而构造函数是:

    import java.util.*;
class element {
public int getInt(String[] args) {
    Scanner scan = new Scanner(System.in);
    System.out.println("Enter the first number");
    String elementName = scan.nextLine();
    System.out.println("%s");
}

public String toString() {
    return elementName;
}
}

【问题讨论】:

  • 您没有在任何地方定义构造函数,我建议您添加一个名称为String的构造函数
  • 我在您的元素类中没有看到构造函数。你应该阅读教程。 docs.oracle.com/javase/tutorial/java/javaOO/constructors.html
  • 我没有在其中看到构造函数。
  • Java 中类名大写,实例名小写。
  • @Rob +1 指出了这一点,你打败了我 :)

标签: java constructor tostring


【解决方案1】:

不要沮丧。请先阅读 java 教程并理解其中的概念。您的考试问题非常清楚您需要做什么。至少对于这个问题,你需要知道什么是构造函数,在一个类中有 toString() 的目的。

下面的内容可能对你有帮助。

public class Element {

private String elementName;

public Element(String elementName) {
    this.elementName = elementName;
}

@Override
public String toString() {
    return elementName;
}

}

【讨论】:

  • 在您的主类中,尝试像“System.out.println(new Element("Rytis"))”一样打印对象
【解决方案2】:

如果不实际给出答案,我想不出办法来解释这一点,所以....

public class Element { /// Create class Element

    private final String name; // Record the 'name'

    public Element(String name) { // constructor receives and sets the name
        this.name = name;
    }

    public String toString() { // public method toString() returns the name
        return name;
    }
}

【讨论】:

    【解决方案3】:

    您缺少构造函数本身。构造函数的重点是初始化对象,通常通过将给定参数保存到数据成员。 例如:

    class Element {
        /** A data member to save the Element's name */
        private String elementName;
    
        /** A constructor from an Element's name*/
        public Element(String elementName) {
            this.elementName = elementName;
        }
    
        @Override
        public String toString() {
            return elementName;
        }
    }
    

    【讨论】:

      【解决方案4】:
      class Element {
          private String name = "";
      
          /**
          /* Constructor
          /**/
          public void Element(final String name){
              this.name = name;
          }
      
          @Override
          public String toString(){
              return name;
          }
      }
      

      【讨论】:

        【解决方案5】:

        那里没有构造函数。构造函数通常看起来像这样:

        public class MyClass {
             private String name;
             private int age;         
        
             //This here is the constructor:
             public MyClass(String name, int age) {
                 this.name = name;
                 this.age = age;
             }
        
             //here's a toString method just for demonstration
             @Override
             public String toString() {
                 return "Hello, my name is " + name + " and I am " + age + " years old!";
             }
        }
        

        您应该能够将其用作制作自己的构造函数的指南。

        【讨论】:

          【解决方案6】:
          class Element 
          {
            private String name = "UNSET";
            public String getName() { return name; }
          
            public Element(String name) {
              this.name = name;
            }
          
            public String toString() { 
             return getName(); 
            }
          }
          

          【讨论】:

            【解决方案7】:

            你缺少一个构造函数,你可能正在寻找这样的东西

            public class Element{
               private String name;
            
               public Element(String name){ //Constructor is a method, having same name as class
                   this.name = name;
               }
            
               public String toString(){
                   return name;
                }
            }
            

            备注
            我认为你是从 java 开始的,在 java 中的类名通常以大写字母开头,因此element 应该是Element。早点养成好习惯很重要。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2023-04-07
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多