객체지향개념 (클래스 #2)

임성혁·2022년 7월 31일

자바 기초

목록 보기
16/32

1. 객체지향 언어란

  • 과학 또는 군사적인 군사 모의실험(simulation) 가상 세계 구현을 위한 노력으로 객체지향 시작
  • 1980년까지만 해도 절치지향이 주류였다.
  • 1995년 Java 탄생 = 객체지향 언어의 주류
  • 특징
    • 코드의 재사용성
    • 코드의 관리 용이
    • 코드의 신뢰성 증가

2. 클래스와 객체

  • 클래스 = 설계도
  • 객체 = 인스턴트화 된 것, 메모리에 적재된 데이터 공간
  • 클래스의 구성요소
    • 속성(Field)
    • 기능(함수, 메서드)
  • 객체 생성 방법(인스턴스화)
// 클래스명 참조변수명;
Dog doge = new Dog();

doge.color = "pink";
doge.legs = 4;
doge.breed = "gin-dot";
  • 객체의 재할당
    • 하나의 객체가 두 개의 주소를 가리킬 수는 없다. 가리키고 있는 주소에서 나누는 것은 가능
Dog doge = new Dog();
Dog pinky = new Dog();

doge = pinky;
  • 클래스의 또 다른 정의
    • 데이터(Field)와 함수의 결합
    • 변수 -> 배열 -> 구조체 -> 클래스
    • 사용자 정의 타입 (User-defined type)
class Time {
	int second;
    int minute;
    int hour;
}

Time[] times = new Time[5];

3. 필드와 메소드

class Test{
	int a; // 인스턴스 변수
	static int b; // 공유 변수
	
    void test(){
    	int c; // 지역 변수
    }
}
  • 인스턴스 변수
  • 지역 변수
  • 공유 변수 ★★★★★★★★★

4. 메소드 오버로딩

  • 같은 이름의 메소드를 여러 개 정의하는 것
  • 조건
    • 메소드의 이름 동일
    • 매개변수의 개수 또는 타입이 달라야함
    • 매개변수는 같은데 리턴 타입이 다른 경우는 안됨

5. 생성자

  • 인스턴스가 생성될 때마다 호출되는 인스턴스 초기화 메소드
  • 기본 생성자
    • 생성자가 하나라도 없으면 컴파일러가 기본 생성

6. 제어자

  • 클래스, 변수, 메소드를 선언하는 곳에 추가 의미하는 역할
  • 종류
    • 접근 제어자 : private, public, protected
    • 기타 : static, final 등
  • static : 공통적으로 쓰이는 변수의 제어 역할
  • final : 값이 입력되면 절대 바뀌지 않음
  • 접근 제어자 : 외부로부터의 접근을 제한
    • private : 같은 클래스 내에서만 접근 가능
    • default : 같은 패키지 내에서만 접근 가능
    • public : 전혀 없음
    • protected : 다음주에 배울 것

3대 에러

  • 컴파일 : 문법 오류
  • 런타임 : 설계 오류
  • 컨텍스트 : 컴퓨터 논리로는 문제가 없어 작동되지만 인간 입장에서는 의미적으로 문제가 있는 에러

싱글톤 존재 이유의 개념 : 계산을 하기 위해 계산기는 하나만 필요하지 두 개의 계산기로 하나는 덧셈 하나는 뺄셈을 하는 것은 비효율적이기 때문에~

숙제

  • POS
    • 판매 기능
    • 환불 기능
    • 메뉴 추가, 삭제 기능
  • 슬롯머신(3x3)
    • 5번의 기회
    • 같은 모양이 몇 개냐에 따른 보상
profile
열정

0개의 댓글