JAVA
[JAVA] 객체와 클래스
jeong_rice
2024. 9. 4. 16:03
<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연산자에 의해 생성될 때 자동으로 실행되는 메소드
- 객체 초기화
- 생성자 메소드이름과 클래스 이름이 같아야 함
- 생성자 메소드는 아무런 값도 반환하지 않는다. return값이 없다
Class BankAccount{
int Balance;
BankAccount(int n){//생성자 메소드
Balance = n;
}
}
‘문자’ “문자열”