[JAVA] 객체와 클래스

    <aside> 💡 클래스 : 객체들의 모임 ( 붕어빵 틀 )

    속성 : 객체가 가진 고유한 특성, 변수를 사용

    행동 : 변수, 연산자, 제어문 사용

    객체(Object) = 인스턴스(Instance) :속성과 기능(객체의 행동 패턴)이 묶인 프로그램 단위

    속성 = 멤버 변수

    기능 = 메소드

    </aside>

    class 클래스 명{ ... } //클래스 선언 방법
    
    • 속성 추가 : 변수
    • 행동 추가 : 메소드(method)
      • 메소드 형식 : int, double, void(아무런 값이 없을 경우)
      class BankAcount {//BankAcount클래스
      	int balance; //속성 추가 (현재 잔액)
      	void deposit(int n){//행동(입금)
      		balance += n;
      	}
      	void withdraw(int n){//행동(출금)
      		balance -= n;
      	}
      	int getBalance(int n){//행동(잔액조)
      		return balance;
      	}
      }
      
    • 객체지향 프로그래밍 : 상속, 다형성, 캡슐

    메소드 호출 : 메소드(매개값1, 매개값2,,,);

    int result = add(10,20);
    //메소드 : add
    //매개값 : (10,20)
    

    객체

     물리적이나 개념적으로 식별 가능 한 것
    

    객체를 만들기 위해서 new 연산자 사용

    • [예제] BankAccount 객체의 사용
      package BankAccount;
      
      //BankAccount클래스 생성
      class BankAccount{
      	int balance;
      	
      	void deposit(int n) {
      		balance += n;
      	}
      	
      	void withdraw(int n) {
      		balance -= n;
      	}
      	
      	int getBalance() {
      		return balance;
      	}
      }
      
      public class Test {
      	public static void main(String[] args) {
      		int money;
      		BankAccount b1,b2;
      		//은행 계좌 b1,b2 를 만든다
      		b1 = new BankAccount();
      		b2 = new BankAccount();
      		// b1에 100원 b2에 500원을 입금한다
      		b1.deposit(100);
      		b2.deposit(500);
      		//b1의 현 잔액을 조회하고 전액을 출금하여 b2에 입금
      		money = b1.getBalance();
      		b1.withdraw(money);		
      		b2.deposit(money);
      		//b1의 현 잔액 조사 화면에 출력
      		money = b1.getBalance();
      		System.out.println(money);
      		//b2의 현 잔액 조사 화면에 출력
      		money = b2.getBalance();
      		System.out.println(money);
      		
      	}
      
      }
      
      /*
      결과
      0
      600
      */
      
    • 두 은행 계좌를 만들고 각각 100원, 500원을 입금하고, 처음 계좌에서 예금 전액을 인출하여 2번째 계좌로 입금하는 기능을 한다. 정상적으로 프로그램이 되었다면 처음 계좌의 잔액은 0원 두번쨰 계좌의 잔액은 600원이 될 것이다
    • [예제] 책장(Bookshelf)이라는 객체의 사용
      package BankAccount;
      
      class BookShelf {
      	int count;
      	
      	void addBook(int n) {
      		count += n;
      	}
      	
      	void removeBook(int n) {
      		count -= n;
      	}
      	
      	int getCount() {
      		return count;
      	}
      }
      
      public class 책장 {
      	public static void main(String[] args) {
      		int Book;
      		BookShelf B1,B2;
      		
      		B1 = new BookShelf();
      		B2 = new BookShelf();
      		
      		B1.addBook(20);
      		B2.addBook(8);
      		
      		Book = B1.getCount();
      		B1.addBook(Book);
      		System.out.println(Book);
      		
      		Book = B2.getCount();
      		B2.addBook(Book);
      		System.out.println(Book);
      		
      		
      	}
      }
      
    • 책장(Bookshelf)이라는 클래스를 만들라. 이 클래스의 속성은 현재 꽂혀있는 책의 권수를 나타내는 count 라는 변수이며, 행동(메소드)으로는 n권의 책을 추가하는 addBook(int n) 과, n권의 책을 빼내는 removeBook(int n), 그리고 현재 꽂혀 있는 책의 권수를 나타내는 getCount() 등 세 가지가 있다. 각각의 메소드를 호출하여 사용하는 테스트 프로그램도 포함하여 프로그램을 만들라.
    • 객체간의 관계
      • 집합관계
      • 사용관계
      • 상속관계

    메소드 오버로딩

    • 메소드명은 동일하지만 매개변수는 다름
    • [예제] 메소드 오버로딩 AccountBank
    • package feb_ten; class BankAccount{ int Balance; void deposit(int n) { Balance += n; } void deposit(double d) { Balance += (int)d; } void deposit() { Balance += 1000; } void withdraw(int n) { Balance -= n; } void withdraw(double b) { Balance -= b; } void withdraw() { Balance -= 1000; } int getBalance() { return Balance; } } public class 메소드오버로딩 { public static void main(String[] args) { BankAccount B1 = new BankAccount(); BankAccount B2 = new BankAccount(); B1.deposit(100); B1.deposit(100.0); B1.deposit(); int n = B1.getBalance(); System.out.println(n); B2.withdraw(500); B2.withdraw(500.0); B2.withdraw(); int n2 = B2.getBalance(); System.out.println(n2); } } /* 1200 -2000 */

    생성자 메소드

    • 어떤 객체가 new연산자에 의해 생성될 때 자동으로 실행되는 메소드
    • 객체 초기화
    1. 생성자 메소드이름과 클래스 이름이 같아야 함
    2. 생성자 메소드는 아무런 값도 반환하지 않는다. return값이 없다
    Class BankAccount{
    	int Balance;
    
    	BankAccount(int n){//생성자 메소드
    		Balance = n;
    	}
    }
    

    ‘문자’ “문자열”

     

    'JAVA' 카테고리의 다른 글

    [JAVA] 인스턴스 멤버클래스 예제  (0) 2024.09.04
    [JAVA] 중첩선언과 익명객체  (3) 2024.09.04
    [JAVA] 조건문과 반복문  (0) 2024.09.04
    [JAVA] 상속  (0) 2024.09.04
    [이것이 자바다] Method  (0) 2024.02.02

    댓글