자바 프로그래밍 입문#5

파핑·2022년 3월 12일
0

JAVA PROGRAMMING

목록 보기
6/12
post-thumbnail

자바 공부기록 5일차


#클래스와 인스턴스

▷클래스 사용과 main( )함수

ㅤint studentID;
ㅤString studentName;
ㅤint grade;
ㅤString address;
→멤버변수

public String getStudentName( ) {
ㅤreturn studentName;
}
public void setStudentName(String name){
ㅤstudentName = name;
ㅤ}
→메서드
}

student클래스는 멤버변수와 메서드로 구성되어 있다. 멤버 변수는 클래스 속성을 나타내고, 메서드는 멤버변수를 이용하여 클래스 기능을 구현한다.
이제 이렇게 만든 클래스를 직접 사용해 결과값을 출력해 보자.

-프로그램을 시작하는 main( )함수

클래스를 사용해서 프로그램을 실행하려면 먼저 main( )함수를 알아야 한다. main( )함수는 자바 가상 머신(JVM)이 프로그램을 시작하기 위해 호출하는 함수이다. 클래스 내부에 만들지만 클래스의 메서드는 아니다.
(술은 마셨지만 음주운전은 안했다 급으로 이해 안가는 중)
암튼 아니라니까 main()함수는 클래스의 메서드가 아니다. 기억하고 지나가자.

main()함수에서 클래스를 사용하는 방법은 두 가지가 있다.
①우리가 만든 클래스 내부에 main( )함수를 만든다.
②외부에 테스트용 클래스를 만들어 사용한다.

Student클래스 안에 main()함수를 넣어보자.

-Student클래스에 main()함수 포함하기

ㅤint studentID;
ㅤString studentName;
ㅤint grade;
ㅤString address;**

public String getStudentName( ) {
ㅤreturn studentName;
}
ㅤ
**public static void main(String[ ]args) {
ㅤ①Student studentAhn = new Student( ); **//Student 인스턴스생성**
ㅤ②studentAhn.studentName = "안치즈";
ㅤ
System.out.println(studentAhn.studentName);
System.out.println(studentAhn.getStudentName());
ㅤ}** //main( )함수
}

인스턴스 생성 주석을 달은 코드 부분을 보면 ①Student를 자료형처럼 사용한 변수에 무언가를 대입하는 코드도 있고, 그 밑 코드에는 처음 보는 ②도트(.)연산자를 사용한 코드도 있다.

위와 같이 클래스 내부에 main( )함수를 만들면 이 클래스가 프로그램의 시작 클래스가 된다. 클래스가 제대로 수행되는지 알아보기 위해 이렇게 클래스 내부에 main( )함수를 만들고 직접 실행할 수 있다.
①인스턴스 생성 주석을 달은 코드 부분은 새로운 Student클래스를 생성하는 코드이고, ②도트 연산자가 있는 코드는 클래스의 멤버변수에 값을 대입하는 코드이다.

그런데 이런 식으로 클래스 테스트를 수행하면 거의 모든 클래스가 main( )함수를 포함해야 한다. 하지만 프로젝트를 수행하거나 소프트웨어를 개발할 때 모든 클래스에 main( )함수가 있는 것은 아니다. 여기에서는 클래스 내부에 main( )함수를 만들지 않고, 다음과 같이 테스트용 클래스를 따로 만들어 실행하는 방식을 사용하겠다.

위 사진과 같이 클래스 이름은StudentTest라고 쓰고, 클래스를 실행하려면 main( )함수가 있어야 하므로 public static void main(String[ ] args)항목을 체크해야한다. main( )함수가 포함된 클래스부터 프로그램이 시작되므로, 이 예제에서는 StudentTest클래스 내부에서 Student클래스를 만들어 실행할 것이다.
[finish]버튼을 누르면 StudentTest.java파일이 만들어 진다.

StudentTest.java파일을 만들었다면 main( )함수에 다음과 같이 Student클래스를 생성하는 코드를 구현한다.

  public static void main(String [ ] args) {
ㅤStudent studentAhn = new Student( ); 
  //Student클래스 생성
ㅤStudentAhn.studentName = "안치즈";
ㅤ
ㅤSystem.out.println(studentAhn.studentName);
ㅤSystem.out.println(studentAhn.getStudentName( ));
ㅤ}  //main( )함수
}

만약 두 클래스가 같은 패키지에 있다면 위 처럼 코드를 써도 문제가 되지 않으나 패키지가 다를 경우 improt문을 사용해서 함께 사용하기 원하는 클래스를 불러와야 한다.
그런데 import문을 아직 안 배웠다. 넘어가자.

클래스 이름이 같아도 패키지가다르면 다른 클래스라는 것을 명심하자.


profile
html/css공부 중(JAVA잠시 접어두는 중)

0개의 댓글