네트워크 캠퍼스/JAVA
240104 클래스 예제, 패키지 예제
gayeon_
2024. 1. 11. 16:18
Cat 클래스 예제
package class_;
public class Cat {
// 이름, 나이, 품종, 털색
public String name;
public int age;
public String kind;
public String color;
// 클래스 정의용 클래스파일 내부 메서드는 static을 붙이지 않습니다.
// 이제 변수와 메서드가 같은 소속이므로, 레퍼런스 주소를 붙이지 않아도 됩니다.
public void showCatInfo() {
System.out.println("고양이의 이름: " + name);
System.out.println("고양이의 나이: " + age);
System.out.println("고양이의 품종: " + kind);
System.out.println("고양이의 색상: " + color);
}
}
package class_;
public class CatMain {
public static void main(String[] args) {
// 고양이 2마리 생성
Cat c1 = new Cat();
c1.name = "야옹이";
c1.age = 2;
c1.kind = "페르시안";
c1.color = "흰색";
Cat c2 = new Cat();
c2.name = "춘식이";
c2.age = 5;
c2.kind = "코숏";
c2.color = "치즈";
c1.showCatInfo();
c2.showCatInfo();
}
}
메인함수의 c1.showCatInfo(); 호출 시 메서드를 수행하게 된다.
c2도 동일하게 진행된다.
22번 라인인 메인함수 닫는 중괄호가 수행될 시 스택에서 메인 함수 지역이 사라지고 스택과 힙의 연결이 끊어지면서
힙 공간도 비워진다. (프로그램 종료)
BasketballPlayer 클래스 예제
package class_;
public class BasketballPlayer {
public String name; // 농구선수의 이름
public int height; // 키
public int age; // 나이
public int salary; // 연봉
// showInfo(BasketballPlayer소속이므로 굳이 해당 단어를 적지 않아도 구분 가능)
// 를 작성해주시고, 호출시 위의 4개 변수를 콘솔에 찍도록 해주세요.
public void showInfo() {
System.out.println("이름: " + name);
System.out.println("키: " + height);
System.out.println("나이: " + age);
System.out.println("연봉: " + salary);
}
public void dunkShoot() { // 덩크슛하기 기능
if(height > 195) {
System.out.println("덩크슛 성공!");
} else {
System.out.println("덩크슛 실패...");
}
}
}
package class_;
public class BasketballPlayerMain {
public static void main(String[] args) {
// 농구선수 2명을 만들어주시고 정보를 조회하는 코드를 작성해주세요.
BasketballPlayer b1 = new BasketballPlayer();
b1.name = "농선";
b1.height = 190;
b1.age = 20;
b1.salary = 1000000000;
BasketballPlayer b2 = new BasketballPlayer();
b2.name = "구수";
b2.height = 200;
b2.age = 220;
b2.salary = 2000000000;
b1.showInfo();
b1.dunkShoot();
b2.showInfo();
b2.dunkShoot();
}
}
함수를 호출할 때 해당 함수의 지역이 열렸다가 리턴하며 닫힌다.
사용자가 필수 필드에 값을 채워야만 하도록 생성자를 클래스 내부에 정의한 예제
package class_;
public class BasketballPlayer {
public String name; // 농구선수의 이름
public int height; // 키
public int age; // 나이
public int salary; // 연봉
// 생성자는 리턴타입이 없고 클래스명과 동일한 이름으로 메서드를 정의하면 됩니다.
public BasketballPlayer(String n, int h, int a, int s) {
name = n;
height = h; // 파라미터 이름을 필드명과 동일하게 할 경우 필드명 앞에 this를 붙여준다.
age = a;
salary = s;
}
// showInfo(BasketballPlayer소속이므로 굳이 해당 단어를 적지 않아도 구분 가능)
// 를 작성해주시고, 호출시 위의 4개 변수를 콘솔에 찍도록 해주세요.
public void showInfo() {
System.out.println("이름: " + name);
System.out.println("키: " + height);
System.out.println("나이: " + age);
System.out.println("연봉: " + salary);
}
public void dunkShoot() { // 덩크슛하기 기능
if(height > 195) {
System.out.println("덩크슛 성공!");
} else {
System.out.println("덩크슛 실패...");
}
}
}
package class_;
public class BasketballPlayerMain {
public static void main(String[] args) {
// 농구선수 2명을 만들어주시고 정보를 조회하는 코드를 작성해주세요.
BasketballPlayer b1 = new BasketballPlayer("농선", 190, 20, 100000000);
// b1.name = "농선";
// b1.height = 190;
// b1.age = 20;
// b1.salary = 1000000000;
BasketballPlayer b2 = new BasketballPlayer("구수", 200, 22, 200000000);
// b2.name = "구수";
// b2.height = 200;
// b2.age = 22;
// b2.salary = 2000000000;
b1.showInfo();
b1.dunkShoot();
b2.showInfo();
b2.dunkShoot();
}
}
패키지 예제
패키지 구조는 위와 같다.
basic 패키지 하위에 furit, hello, importex 패키지가 있고 hello 패키지 하위에는 hi와 bye 패키지가 있다.
package basic.importex;
import basic.fruit.Apple;
import basic.hello.bye.Bye;
import basic.hello.hi.Hi;
/*
* 같은 프로젝트 내의 코드끼리나 혹은 자바에서 기본으로 제공하는 클래스파일은
* 언제든지 가져다가 사용할 수 있습니다.
* 다만 다른 패키지에 있는 클래스를 사용하려면 반드시 package 선언부 아래
* (1번 라인 아래)에 import 선언을 통해 참조할 클래스의 경로를 적어야 합니다.
* ex) import java.util.Date; <- Date 클래스를 참조하는 경로
*/
public class ImportExample {
public static void main(String[] args) {
// 같은 패키지 내의 다른 클래스를 호출할 때는 어떤 참조설정도 필요하지 않다.
Test test = new Test();
Apple apple = new Apple();
// 나머지 과일 하나와, Hi, Bye도 같은 맥락으로 작성하면서
// 자동완성을 통해 상단에 import되는 구문을 보며
// 외부 패키지를 어떤식으로 참조하는지 직접 확인하세요.
Hi hi = new Hi();
Bye bye = new Bye();
}
}
같은 프로젝트 내의 코드끼리나 혹은 자바에서 기본으로 제공하는 클래스파일은 언제든지 가져다가 사용할 수 있다.
다만 다른 패키지에 있는 클래스를 사용하려면 반드시 package 선언부 아래 (1번 라인 아래)에
import 선언을 통해 참조할 클래스의 경로를 적어야 한다.
ex) import java.util.Date; <- Date 클래스를 참조하는 경로