JAVA CLASS
Procedural Programming
절차적 프로그래밍 : 알고리즘을 구현하기 위해서 순서별로 프로그래밍 한 것
프로그램 전체가 유기적으로 연결되도록 만드는 프로그래밍 기법
컴퓨터의 작업 처리 방식과 유사하기 때문에
객체지향 언어를 사용하는 것에 비해 더 빨리 처리되어 시간적으로 유리하다.
- 절차지향 프로그래밍은 데이터를 중심으로 함수를 구현한다.
- 실행순서, 절차가 더 중점이 된다.
Object oriented programming
객체지향 프로그래밍 : 프로그램 구현에 필요한 객체를 파악하고 각각의 객체들의 역할이
무엇인지를 정의하여 객체들 간의 상호작용을 통해 프로그램을 만드는 것을 말함.
- 기능을 중심으로 메소드를 구현한다.
- 필요한 객체들의 종류와 속성 등이 더 중점이 된다.
객체 지향 프로그래밍
객체
- 객체(object)란 물리적으로 존재하거나 개념적인 것 중에서 다른것과 식별 가능한 것
- 객체는 속성과 동작으로 구성. 자바는 이러한 속성과 동작을 각각 필드와 메소드라고 부름
객체 지향 프로그래밍(OOP) Object oriented programming
- 객체들을 먼저 만들고, 이 객체들을 하나씩 조립해서 완성된 프로그램을 만드는 기법
객체의 상호작용
- 객체 자향 프로그램에서도 객체들은 다른 객체와 서로 상호작용하면서 동작
- 객체가 다른 객체의 기능을 이용할 때 이 메소드를 호출해 데이터를 주고받음
- 매개값 : 객체가 전달하고자 하는 데이터이며, 메소드 이름과 함께 괄호() 안에 기술
- 리턴값 : 메소드의 실행의 결과이며, 호출한 곳으로 돌려주는 값
객체 간의 관계
- 집합관계 : 완성품과 부품의 관계
- 사용관계 : 다른 객체의 필드를 읽고 변경하거나 메소드를 호출하는 관계
- 상속관계 : 부모와 자식의 관계 . 필드, 메소드를 물려받음
객체 지향 프로그래밍의 특징
- 캡슐화 : 객체의 데이터 (필드), 동작(메소드)을 하나로 묶고 실제 구현 내용을 외부에 감추는 것.
- 상속 : 부모객체가 자기 필드와 메소드를 자식 객체에게 물려줘 자식 객체가 사용할 수 있게 함.
* 코드 재사용성 높이고 유지 보수 시간 최소화
- 다형성 : 사용 방법은 동일하지만 실행 결과가 다양함
- 추상화 : 객체에서 공통된 속성과 행위를 추출하는 것
클래스와 인스턴스
- 객체 지향 프로그래밍에서도 객체를 생성하려면 설계도에 해당하는 클래스가 필요.
- 클래스로부터 생성된 객체를 해당 클래스의 인스턴스라고 부름
- 클래스로부터 객체를 만드는 과정을 인스턴스화라고 함
- 동일한 클래스로부터 여러 개의 인스턴스를 만들 수 있음
클래스 선언
- 객체를 생성(생성자)하고, 객체가 가져야 할 데이터(필드)가 무엇이고, 객체의 동작(메소드)은
무엇인지를 정의
- 클래스 선언은 소스 파일명과 동일하게 작성
[클래스명.java]
// 클래스 선언
public class 클래스명 {
} // 동일한 클래스명으로 소스파일명과 함께 사용.
- 클래스명은 첫 문자를 대문자로 하고 캐멀 스타일로 작성. 숫자를 포함해도 되지만
첫 문자는 숫자가 될 수 없고, 특수 문자중 $,_를 포함할 수 있음
- 공개 클래스 : 어느 위치에 있든지 패키지와 상관없이 사용할 수 있는 클래스
객체 생성과 클래스 변수
클래스 변수
- 클래스로부터 객체를 생성하려면 객체 생성 연산자인 new가 필요
- new 연산자는 객체를 생성시키고 객체의 주소를 리턴
클래스 변수 = new 클래스();
- 라이브러리 클래스 : 실행할 수 없으며 다른 클래스에서 이용하는 클래스
- 실행 클래스: main() 메소드를 가지고 있는 실행 가능한 클래스
클래스의 구성 멤버
생성자, 필드 , 메소드
- 필드 : 객체의 데이터를 저장하는 역할. 선언 형태는 변수 선언과 비슷하지만 쓰임새는 다름
- 생성자: new 연산자로 객체를 생성할 때 객체의 초기화 역할.
선언 형태는 메소드와 비슷하지만, 리턴 타입이 없고 이름은 클래스 이름과 동일
- 메소드: 객체가 수행할 동작. 함수로도 불림
===============================================================
객체는 실제 존재하는 것을 말한다.
객체 - 속성/ 동작을 가지고 있다.
객체를 이해.
속성 또는 동작 중 하나라도 없다면 객체가 아니다.
객체지향 캡슐화 Encapsulation : 클래스 안에 서로 연관 있는 속성과 기능들을 하나의 캡슐(Calpsule)로
만들어 데이터를 외부로부터 보호가는 것을 말함.
객체지향 상속 inheritance : 객체들간의 관계를 구축하는 방법 /
글래스롤 객체가 정의되는 고전 상속에서 클래스는 기반 클래스, 수퍼클래스, 또는
부모 클래스등의 기존의 클래스로부터 속성과 동작을 상속받을 수있다.
객체지향 다형성 Polymorphism : 한 타입의 참조변수를 통해 여러 타입의 객체를 참조할 수 있도록 만든 것을 의미
상위 클래스 타입의 참조변수로 하위클래스의 객체를 참조할 수 있도록 하는 것.
객체 설계도 = 클래스라고 기억하기.
클래스안에 생성되어진 해당 객체 = 인스턴스
객체는 인스턴스가 아니다
인스턴스는 객체이다.
ex ) 동물은 사람이다 (X)/ 사람은 동몰이다 (O)
개발자 ----> 설계 ---> 클래스(설계도) ---> 인스턴스화 -----> 인스턴스1, 인스턴스2,..... (객체)
객체가 어떤 종류인지 클래스 안에서 구분할 때는 인스턴스라 한다~~
클래스가 없는 객체는 없다.
객체를 만들기 위해서는 클래스가 존재해야만 함.
java는 oop (객체지향프로그램)을 추구하기 위해 염두해두고 만든 언어이다.
java = pure oop 순수 객체 지향 언어//
객체의 속성과 동작을 표현할 수 있는 설계도 ====> 클래스
필드 : 객체의 데이터가 저장되는 곳 ==> 객체의 속성을 표현한다.
생성자 : new 연산자로 객체를 생성할 때 객체의 초기화 역할. // = 초기화 메소드.
메소드 : 객체의 동작으로 호출 시 실행하는 블록
반드시 클래스 안에서 존재함
함수는 독립적으로 존재 자바에서는 존재하지 않는다 /// 자바에는 메소드가 존재 : 클래스 안에 존재하는 함수
메소드 안에 있는 변수 : 로컬 변수
메소드 밖에 있는 변수 : 필드 // (필드변수)
==============================
생성자 / Class는 반드시 존재한다.
필드 : 속성 , 메소드: 동작, 생성자: 초기화 메서드
==============================
클래스의 구성요소 : 자바에서 클래스는 멤버 Member로
속성을 표현하는 필드field와 기능을 표현하는 메소드method
클래스는 생성 된 객체의 필드를 초기화해주는 특별한 메소드인 생성자 Constroctor를 가지고 있음.
'Hello World > JAVA' 카테고리의 다른 글
JAVA - 객체지향프로그래밍 OOP 클래스 Memo. [개발스터디 기몬] (0) | 2023.03.29 |
---|---|
JAVA - 객체지향 프로그래밍 / oop 필드, 생성자, 클래스 / 오버로딩 인스턴스 멤버, 정적 멤버 [개발스터디 기몬] (0) | 2023.03.27 |
JAVA - 배열 Array [개발스터디 기몬] (0) | 2023.03.10 |
JAVA - (응용 Array)Alpha 랜덤 값 _ 조건문_반복문_배열을 사용해서 명령크롬프트에 화면 출력해보기 (VT100명령어 사용) [개발스터디 기몬] (0) | 2023.03.09 |
JAVA - Alpha 랜덤 값 _ 조건문_반복문_배열을 사용해서 명령크롬프트에 화면 출력해보기 (VT100명령어 사용) [개발스터디 기몬] (0) | 2023.03.09 |
댓글