[JAVA]객체지향프로그램: 클래스와 메소드

박두팔이·2022년 11월 10일
0

객체지향프로그램: 클래스와 메소드

  • 클래스는 클래스 속에 들어갈 수 없다.(자바고급에선 가능)
  • 접근지정자의 public 선언할 수 있는 경우: .java파일명과 같을 때 사용가능하다.
  • 클래스가 여러개일 경우 자바는 파일명과 동일한 클래스명을 최우선으로 실행한다. 한 파일 안에 클래스를 두개 적어준 다고 해서 실행되지는 않는다. 메인메소드에서 호출해 줄 때만 가능하다.
public class ObjectOP {
	// 클래스는 클래스 속에 들어갈 수 없다. 그러나 자바 고급에서는 들어갈 수 있다.
//
	public static void main(String[] args) {
	}
} // 클래스가 끝나는 지점
//
// 새로운클래스 생성하기
//
class Human { // public 선언 시 에러; // public을 붙일 수 있는 경우: 파일명과 같을 때 사용가능하다.
	String name;
	int age;
//
	//
	public void sleep() {
		System.out.println("zzz");
	}
//
	public void eat() {
		System.out.println("먹기 ");
	}
//
	public void sound() {
		System.out.println("저는" + name + "입니다 ");
	}
	// 실제 사람을 프로그래밍화 한다면 용량이 어마어마하게 필요할 것이다.
	// 객체를 만들 때에는 필요없는 부분은 제외합니다.
}
  • sleep()메소드에는 파라미터가 없다. 인스턴스명은 sleep이다.
  • 메인메소드에서 Human클래스를 인스턴스화 하려고 한다.
  • 대부분 메인메소드는 호출의 용도로만 사용함. 객체지향언어의 특징이다.
  • 아래의 예시는 메인메소드에서 휴먼클래스의 메소드를 호출하는 코드이다.
public static void main(String[] args) {
		Human human = new Human(); //생성자()
		human.sleep(); //메소드의 파라미터값이 없기때문에 ()안의 공간이 빈 공간이어도 가능 
		human.eat();
		human.sound();
}
  • 예를들어 Human클래스에 eat메소드의 파라미터 타입이 int타입이라면 메인메소드안에서는
  • 또 다른 예로 Human클래스의 eat()메소드에 가상의 파라미터 값을 String 타입으로 넣는다면 메인메소드에서 어떻게 호출을 해야할까?? (아래코드 참고)
//Human클래스
public void eat(String thing){ //가상의 파라미터변수
		System.out.println(thing + "냠냠먹어요");
	}
//메인메소드에서 human의 eat메소드를 호출하는 방법
human.eat("감자");
profile
기억을 위한 기록 :>

0개의 댓글