2012-11-24 21 views
6

Tôi mới lập trình, tôi xin lỗi nếu đây là một lỗi ngớ ngẩn, nhưng tôi vẫn gặp lỗi này "CompanyAddress.java:11: error: cannot find symbol System.out.println(testObject.getName(CompanyName));" Tôi không biết mình là gì làm sai.Tôi không thể làm việc này, các phương pháp và biến thể hiện

Chính.

import java.util.Scanner; 
public class CompanyAddress 
{ 
    public static void main(String[] args) 
    { 
    Scanner scan = new Scanner(System.in); 
    test testObject = new test(); 
    System.out.println("Enter name: "); 
    String input = scan.nextLine(); 
    testObject.getName(input); 
    System.out.println(testObject.getName(CompanyName)); 
    } 
} 

test.java tôi

import java.util.Scanner; 
public class test 
{ 
    String Name; 

    public String getName(String CompanyName) 
    { 
     Name = CompanyName; 
     return Name; 
    } 


} 
+6

Một bình luận bên. Một trong những quy ước đặt tên được sử dụng rộng rãi trong Java là các tên biến nên bắt đầu bằng một ký tự chữ thường. – fivedigit

Trả lời

2

Trước hết bạn cần phải khai báo biến companyName của bạn, trước khi đi qua nó để phương pháp của bạn.

Thứ hai, phương pháp của bạn: -

public String getName(String CompanyName) 
{ 
    Name = CompanyName; 
    return Name; 
} 

vẻ xa lạ với tôi. Bạn đang sử dụng cùng phương thức như getter and setter.

Bạn nên có separate setter and getter: -

public void setName(String companyName) { 
    name = companyName; 
} 

public String getName() { 
    return name; 
} 

Và gọi chúng riêng rẽ.

testObject.setName(companyName); 

System.out.println(testObject.getName()); 

Chỉ cần một gợi ý: -

Thực hiện theo Java Naming Convention. Tên trường và tên phương thức phải bắt đầu bằng chữ thường.

+0

@Downvoter .. Xin vui lòng bình luận, bởi vì tôi không nghĩ rằng ý định của bạn đằng sau downvoting là gì. –

+0

Tôi upvoted, bởi vì đây là câu trả lời tốt nhất cho đến nay. Ngoài việc trả lời câu hỏi của OP, bạn cũng đã thêm một lời khuyên tốt, từ những ví dụ mã của OP, là cần thiết. –

+0

+1 bạn đánh bại tôi theo phút .. :-) Câu trả lời hoàn hảo –

3

Bạn phải khai báo biến CompanyName. Một cái gì đó như thế này:

String CompanyName = "CompanyName1"; 
System.out.println(testObject.getName(CompanyName)); 

Vì bạn đang sửa đổi một biến bạn nên làm:

public class test 
{ 
     String Name; 

     public void setName(String CompanyName) {this.Name = CompanyName;} 

     public String getName()     {return Name;} 

}

Phương pháp này getName sẽ trả lại tên của "Công ty" và setName sẽ thay đổi tên của "Công ty". Bằng cách này, bạn có thể các mối quan tâm riêng biệt khác nhau.

Hơn nữa, bạn có thể trong tương lai gọi phương thức getName mà không cần sửa đổi tên thực tế của công ty.

3
System.out.println(testObject.getName(CompanyName)); 

Điều gì CompanyName ở đây? Nó không được biết đến biểu tượng. Nó có thể là System.out.println(testObject.getName("CompanyName"));

hoặc

String CompanyName ="name"; 
System.out.println(testObject.getName(CompanyName); 
+0

xin vui lòng bình luận cho downvote ... –

0

Đổi tên của bạn "getName để "setName"(vì nó là một setter) và thêm một getter thích hợp để lớp học của bạn và sử dụng rằng:

public class test 
{ 
    String Name; 

    public void setName(String CompanyName) 
    { 
     Name = CompanyName; 
    } 

    public String getName() { 
     return Name; 
    } 
} 

thì:

System.out.println(testObject.getName()); 


Cũng , nó sẽ giúp bạn nếu bạn tuân thủ các quy ước đặt tên chuẩn:

  • Tên lớp bắt đầu với một chữ cái viết hoa
  • Method, biến và tham số tên bắt đầu bằng một chữ cái thường
1

Tôi nghĩ rằng bạn wamt chương trình của bạn để làm một cái gì đó như dưới đây. Hàm setName() sẽ đặt giá trị được truyền thành tên và một getName() sẽ trả về giá trị của tên.

import java.util.Scanner; 
public class test 
{ 
    String Name; 

    public String getName() 
    { 
     return Name; 
    } 

    public String setName(String companyName) 
    { 
     this.Name=companyName; 
    } 
} 

Bây giờ

public class CompanyAddress 
{ 
    public static void main(String[] args) 
    { 
    Scanner scan = new Scanner(System.in); 
    test testObject = new test(); 
    System.out.println("Enter name: "); 
    String input = scan.nextLine(); 
    testObject.setName(input); 
    System.out.println(testObject.getName()); 
    } 
} 
+0

Bất cứ ai, nếu bạn nghĩ rằng việc định dạng/đánh vần tốt hơn cần được kiểm tra. Vui lòng chỉnh sửa. M trên điện thoại. Cand làm nhiều về định dạng. cảm ơn trước –

+0

Nó là khá phong nha :). – dreamcrash

+0

@dreamcrash thankyou & cảm ơn bạn đã chỉnh sửa (y) –

Các vấn đề liên quan