BigData 청년인재 프로그램(Java) - 7. 객체 지향 프로그래밍

7. 객체 지향 프로그래밍

6/27(화)Day02

<1. 객체지향>
1.1 객체지향
-실세계를 구성하는 모든것
-객체(인스턴스) = 특성(필드,데이터) + 기능(메소드,처리)
-참조변수. 을통해 다른객체에 메시지를 전달하고 호출하여 상호작용함

<2. 클래스와 객체>
2.1 클래스(Class) ->틀, 객체의 속성과 기능을 정의, 재사용하여 여러객체 생성
2.2 객체(Instance) -> 구체화, new로 heap에 메모리 할당, 실행시 메모리 할당

<3. 클래스의 구성요소>
3.1 클래스의 구성요소
3.1.1) 속성(멤버변수)(=Field) : 클래스변수 or 인스턴스변수
3.1.2) 기능(멤버함수)(=Method)

<4. 클래스의 정의>
4.1 [접근제한자][사용제어자] class 클래스이름 [extends 부모클래스이름] [implements 인터페이스이름]{
//field
//method
}
public abstract class A extends B implements C,D{
static int a;
static void test(String s, int a){};
}
4.2 이미 정의된 class : 라이브러리(import 필요), 사용자정의 class

<5. 주석>
5.1 한줄 주석 : // 주석내용 : 단축키 (ctrl + /)
5.2 여러줄 주석 : /* 주석내용*/ : 단축키(ctril +shift + /)
5.3 주석으로 api문서만들기 : /** 설명 */ : 탄축키(/** + 엔터)
1)API문서위치 : 선언문 앞에
2)API 전용 어노테이션(@)
@author 작성자, @version 수정버전 =>class API에 사용
@param 매개변수 설명, @return 반환변수 설명, @exception 예외처리 설명=>MethonAPI에 사용
#클래스 API
/**
*<pre>
*이 클래스는 ~클래스이다
*</pre>
*@author 나
*@version ver 1.2.0
*/

#메서드 API
/**
*<pre>
*이 메서드는 ~하는 메서드
*</pre>
*@param a 설명, b 설명, c 설명
*@return age 설명
*@exception e 설명
*/

<6. 멤버변수 =Field>
6.1 클래스를 구성하는 속성정보(Field)
6.2 종류 : 클래스멤버변수(클래스이름.변수명) vs 인스턴스멤버변수(참조변수명.변수명)
클래스 변수는 public static final 타입 변수명 -> 상수
인스턴스 변수는 private 타입 변수명->변수 : getter, setter로 접근
#getter
public 필드타입 get변수명(){
return 필드타입
}

#setter
public void set변수명(필드타입 a){
this.변수명 = a;
}

<7. 멤버함수 = Method>
-C언어의 main메서드는 프로그램당 1개, Java의 main메서드는 Class당 1개
7.1 객체가 가져야할 고유기능을 수행하기 위한 명령어 집합
7.2 [접근제한자][사용제어자] 반환타입 메서드명(타입 매개변수명1, 타입 매개변수명2)[throws 예외클래스명1, 예외클래스명2]{
[return value;]
}
#메서드정의 : 머리 + 몸통
#필드정의 : 자료형 변수명
#메서드를 구분하는 것 : 0)메서드 이름 1) 매개변수 개수 2)매개변수 순서 3)매개변수 타입
7.2 Overloading(중복정의) : 동일클래스+동일이름+다른 매개변수(개수,순서,타입)
7.3 Overriding(재정의) : 다른클래스(상속관계)+동일이름+동일 매개변수(개수,순서,타입)

<8. 생성자 = Constructor>
8.1 객체 생성시 !자동!호출되는 객체 초기화 메서드
8.2 메모리할당 + 초기화 목적사용
8.3 메소드 이름과 Class이름과 같음(대문자시작)
8.4 반환형 개념이 없다.
8.5 일반메서드 vs 생성자
-중복정의,재정의 가능 vs 재정의 불가능(Class의 이름은 모두 다름)
-목적:Class의 기능수행 vs 초기화+메모리할당
-소문자시작 vs 대문자시작
-super();가 수행문 1째줄에 존재

<9. 객체생성과 참조변수>
9.1 [접근제한자][사용제어자] 클래스이름 참조변수명 = new 클래스이름([매개변수]);
Student s = new Student('학생',200901618);
9.2 객체생성절차
1)Heap에 클래스의 멤버변수중 인스턴스 멤버변수 크기만큼 메모리할당
2)멤버변수(Field)자동 초기화
3)명시적초기화
4)생성자 메서드 수행(자동호출)
5)생성된 heap객체에 Stack참조값 할당
6)참조변수.멤버변수;로 필드값 접근 // 참조변수.멤버함수();로 메서드 접근

<10. this>
10.1 new()를 실행하면 자동으로 제공되는 참조변수
10.2 Class정의시에만 사용(main 메소드에서 사용x)
10.3 this(int a); : 현재 클래스의 다른 생성자를 호출하면-> 생성자의 첫번째 수행문으로 사용해야함.

<11. 클래스 설계 및 객체 생성, 객체 사용>
11.1 Student : Class
11.2 int num, String name : 인스턴스 멤버변수
11.3 Student(){}, Student(int num, String name){} : 생성자
11.4 Student s = new Student(); : main메소드에서 객체생성
11.5 s.print(); : 객체 사용

댓글

이 블로그의 인기 게시물

1장_1절 관계형 데이터베이스 개요

2장_1절. 표준 조인(Standard Join)

BigData 청년인재 프로그램(Java) - 11. 추상 클래스와 인터페이스