본문 바로가기

Java/본격 Java 클래스

(15)
[Java] Nested 클래스 활용 자동차 클래스를 만들어서 그 안에 타이어 클래스를 만든다. 이 때 자동차 클래스 인스턴스를 만들고 또 타이어 인스턴스를 만들어서 두가지 모두 호출하는 프로그램을 만들어본다. . . package nestedCarClass; public class Car { private String name; public Car(String name) { this.name = name; } class Tire{ int size; public Tire(int size) { this.size = size; } public void display() { System.out.println("---Car Info---"); System.out.println("Car Model : " + name); System.out.print..
[Java] Nested 클래스 nested (수학) 집합 또는 구간의 순서를 지닌 계열(系列)에서, 각기 그 앞의 것에 포함되고, 또한 집합의 직경이나 구간의 길이가 0으로 수속(收束)하는 것. 말이 어렵지만 다중으로 for문을 사용하거나 if문을 사용하는 것이랑 비슷하다고 생각하면 될거같다. nested 클래스는 클래스 안에 새로운 클래스를 작성하는 것을 의미한다. . . 여기서 static의 관계를 이해해야하는데 static은 어디서든 접근가능하다고 보면된다. . . package member_Class; // 외부 클래스 public class A { int a; // 인스턴스 멤버 static int b; // static(클래스) 멤버 public A() { System.out.println("A 객체가 생성됨."); } /..
[Java] 클래스 메소드 ※복습 클래스 변수와 클래스 메소드 - 멤버변수와 멤버메소드를 선언할 때 static을 붙이면 클래스 멤버로 선언된다. - 일반적으로 멤버라 하면 인스턴스 멤버를 의미하는 경우가 많습니다. 클래스멤버와 인스턴스멤버를 합하여 멤버라 지칭합니다. - 클래스멤버는 인스턴스와 관계없이 동작됩니다. - 클래스멤버는 모든 인스턴스에서 공유할 수 있습니다. - 단, 클래스멤버에서는 인스턴스 멤버에 접근 할 수 없습니다. . . 예제1 class NumberPrinter { public static void showInt(int n){ System.out.println(n); } public static void showDouble(double n){ System.out.println(n); } } class Clas..
[Java] 클래스 변수 클래스 변수와 클래스 메소드 - 멤버변수와 멤버메소드를 선언할 때 static을 붙이면 클래스 멤버로 선언된다. - 일반적으로 멤버라 하면 인스턴스 멤버를 의미하는 경우가 많습니다. 클래스멤버와 인스턴스멤버를 합하여 멤버라 지칭합니다. - 클래스멤버는 인스턴스와 관계없이 동작됩니다. - 클래스멤버는 모든 인스턴스에서 공유할 수 있습니다. - 단, 클래스멤버에서는 인스턴스 멤버에 접근 할 수 없습니다. . . 클래스 변수는 인스턴스 변수와 다른 공간에서 작용한다. 예제1 class InstCnt { static int instNum = 0; // 클래스 변수로 인스턴스와 상관없이 동작함. int num = 0; public InstCnt(){ instNum++; num++; System.out.printl..
[Java] 정보 은닉(private) 정보은닉 - 클래스가 갖고 있는 정보(멤버 변수)를 외부에서 직접 접근 못하도록 숨기는 행위 - 숨기는 방법은 멤버변수를 private으로 선언하면 됩니다. private으로 선언하면 같은 클래스 내부에서만 접근이 가능합니다. - 외부에서 인스턴스 등을 통해 멤버변수에 접근하려면 특정 메소드를 통한 간접 접근 방식을 사용해야합니다. - 멤버변수 값 변경은 setter 메소드를 통하고, 값의 참조는 getter를 통해 작업합니다. . . 해당 예제는 멤버변수에 임의로 접근해서 수정하는 경우이다. /* 과일 판매자 : fruitSeller - 멤버변수 : 사과개수(numOfApple), 매출액(myMoney), 가격(APPLE_PRICE) - 메소드 : 판매(saleApple()), 현황보기(showSale..
[Java] 실습 - 삼각형 넓이 구하기 클래스 이름 : Triangle - 밑변과 높이를 저장할 수 있어야 함 : 멤버변수 선언 - 인스턴스 생성과 동시에 밑변과 높이를 초기화할 수 있어야 함 : 생성자에서 초기화 - 밑변과 높이 정보를 변경할 수 있는 메소드 정의 : setter 메소드 정의 - 삼각형의 넓이를 구하여 리턴하는 메소드 정의 : 넓이 연산 후 리턴 - 모든 정보는 double형으로 작업 . . 예제 class Triangle { double triHeight; // 삼각형의 높이 double triBottom; // 삼각형의 밑변 double triArea; // 삼각형의 넓이 public Triangle(double height, double bottom){ triHeight = height; triBottom = botto..
[Java] 실습 - 사과판매3(생성자 이용) 문제점 - APPLE_PRICE를 변수로 사용해야 함. - 인스턴스 생성에 두 줄의 명령이 필요함. - 언제든 initMember()메소드를 호출할 수 있어 모든 값이 변경될 수 있음. 해결책 - 생성자 이용 . . 예제 /* 과일 판매자 : fruitSeller - 멤버변수 : 사과개수(numOfApple), 매출액(myMoney), 가격(APPLE_PRICE) - 메소드 : 판매(saleApple()), 현황보기(showSaleResult()) 과일 구매자 : fruitBuyer - 멤버 변수 : 사과개수(numOfApple), 사과 살 돈(myMoney) - 메소드 : 구매(buyApple()), 현황보기(showBuyResult()) 제어 : FruitSalesMain1 - fruitSeller와..
[Java] 생성자(Constructor) 생성자(constructor) - 모든 클래스에 존재하는 일종의 메소드로 인스턴스를 생성시켜주는 작업을 합니다. 생성자가 없으면 JVM이 자동으로 default 생성자를 만들어 사용합니다. default 생성자 : 다른 작업은 하지 않고 오직 인스턴스만을 생성합니다. - 생성자는 인스턴스 생성시 딱 한 번만 실행됩니다. 가장 먼저 실행되기 때문에 멤버 변수들의 초기화에 주로 사용됩니다. - 선언법 접근제어지시자 메소드명-클래스명([매개변수(들)]){ 생성자 실행문(들); } 생성자는 리턴타입이 없습니다. : 입력하면 생성자가 아닌 일반 메소드로 인식합니다. 생성자의 이름은 반드시 클래스 이름과 동일해야 합니다.(대소문자 포함) . . 예제1 class NumberEx { int num = 10; // 멤..