작성
·
437
0
안녕하세요.
코드 작성하다 질문사항이 있어 글 남깁니다.
예를 들어,
클래스를 하나 생성하고 거기에 인스턴스를 하나 생성한 다음 그 인스턴스 내부의 메서드 호출 시 오류가 나는 부분이 있어서요.
player라는 클래스는 따로 생성하였고 거기에 play라는 메서드를 구현하였습니다.
public class TestPlayer{
Player player = new Player();
player.play(); // 여기서 오류가 발생하는데
}
위에 언급한 것처럼 Player 클래스에 매서드는 잘 구현을 하였고, 이게 다른 메서드 내부 예를 들어 main method 내부에서는 전혀 문제될 게 없는데
위와 같은 경우는 에러가 나네요.
메서드 밖에서는 즉 클래스 변수로 위치할 때에는 함수 호출을 금하도록 규정이 되어 있는게 있을까요 ?
자바를 예전에 공부했어서 복습차원에서 보다가 명쾌하게 궁금증을 해결하고자 문의 드립니다.
답변 3
0
그리고.. 문의하신 스트림은 바이트 단위로 그대로 읽어서 그대로 다시 쓰는거라... 파일의 상태가 그대로 유지되는 것입니다. 파일이 그대로 복사되는 것입니다. 파일이 그대로 복사되는것은 텍스트나 실행파일이나 다르지 않습니다.
0
외부 클래스에서 메서드 호출이 안된다고 하셨으면 접근제어자의 문제일 수 있습니다. 호출하는 외부 클래스가 같은 패키지인 경우는 상관 없지만, 다른 패키지에 있는 클래스의 경우는 메서드에 public 접근 제어자를 쓰셔야 합니다. 사실... 코드를 직접 보는 것이 가장 빠른 해결 방법이라... 코드 상태의 스냅샷을 올려주셔도 좋을것 같습니다.
0
아... 코드를 보니 실행하시려면
public class TestPlayer{
public static void main(String[] args){
Player player = new Player();
player.play();
}
}
실행을 위한 main() 메서드가 빠진듯 합니다
답변 감사합니다.
제 질문은 말씀하신 main method 안에서는 player.play() 즉 객체의 메서드를 호출하는 것이 가능한데, main method 밖에서는 위의 동작이 수행 되지 않는 이유가 궁금합니다.
또한 추가로 질문 드리면, iostream에서 질문이 하나 있는데 예를 들어 txt 파일을 가져와서 읽을 경우에는 동작 방식이 a.txt라는 텍스트 파일에 기록된 문자들을 charcter 단위 혹은 byte단위로 읽어서 새로운 파일에 write 해줄 경우 마치 txt 파일을 복사한 것처럼 동일한 텍스트의 파일이 생성되는 것을 확인할 수 있는데, 강의 내용 중에 a.zip을 바이트 배열로 읽어들여 b.zip으로 생성하신게 있던데 여기서 a.zip은 사실 바이너리로 이루어진 파일이고 txt 파일 내용처럼(텍스트)처럼 명확하지 않은데 이건 어떻게 읽고 이렇게 읽은 걸 그대로 write 시켰을 때 작성한 프로그램에서는 어떻게 zip파일인 것을 알고 zip파일을 생성할 수 있을까요 ?
감사합니다.