Img profile default
최미진
  • 2016.4.18 14:30
  • 조회수 129
  • 답변수 1
Img profile default
최미진
  • 2016.4.18 14:30
  • 조회수 129
  • 답변수 1

c1.name = "소방차"; 에러메세지 출현

public class CarExam {

public static void main(String[] args) {
Car c1 = new Car();
Car c2 = new Car();

c1.name = "소방차";

Car class에서
String name;
int number;

필드명을 선언하였습니다.

그럼에도 불구하고 c1.name = "소방차" 를 입력하고 엔터키를 누르니 에러 라고 합니다. name위에 커서를 두니 Creat field name in type Car라는 밑물친 메세지가 뜨며, 이 메세지를 클릭하니 자동으로 Car class로 넘어가서
public String name; 이 자동으로 입력되고
CarExam class에서도 c1.name = "소방차"도 에러메세지가 사라졌습니다.

어떤 일이 일어나고 있는지 잘 알 수가 없습니다.

위와 같이 질문을 드렸는데 답변은 감사하게 받았습니다만
제가 질문한 요지는 강사님은 public String name 이런 과정을 거치지 않고도 에러 메세지가 뜨지 않는데 저는 아마도 강사님과 똑같이 한 것 같은데 에러 메세지가 뜹니다. 설명을 좀 부탁드려도 될까요?

  • #자바 입문
  • #참조타입

1 답변

  • Gscxhpxkg5i74t30rimh
    정두식
    • 2016.4.18 14:59

    강사님이 CarExam에서 public이라는 키워드를 붙이지 않고도 Car클래스의 name을 사용할 수 있었던 이유는 이후 강의에서 배우는데요.
    간단히 설명하면 public이나 private등을 적어주지 않을때는 default접근제한자가 되기 때문입니다. 지금은 이해가 어려우실텐데요. 다음 강의들을 들어야 이해할 수 있습니다.

    패키지와 관련해서는 http://tryhelloworld.co.kr/courses/자바-입문/lessons/패키지 에서 배울 수 있고
    접근제한자 관련해서는 http://tryhelloworld.co.kr/courses/자바-입문/lessons/접근제한자 에서 배우실 수 있습니다.

    문제가 발생하시는 이유는 두 파일이 하나의 패키지로 묶여있지 않아서 그런것 같습니다.

답변 쓰기

이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.