▶내용 복습
자바의 특징
1. 배우기 쉽다.
2. 플랫폼이 독립적이다.
3. 객체지향 언어이다.
기술이 아닌 개발 방법 논의.
클래스는 재활용을 목적으로 나온 개념이다.
OOP란?
-Object Oriented Programming
-객체지향 프로그래밍이라는 의미로 Object의 개념을 Program에 적용한 것.
객체지향은 c++부터 출발하였다.
C++ oop 3대 특징
1. 은닉화
2. 다형성
3.상속성
▶OOP의 4대 특징
1. 추상화 = 객체 모델링 (클래스 설계도) <- (자바에 추가한 개념. C++ 에는 없다. )
2. 캡슐화(은닉화) (데이터를 보호하기 위해 나온 개념)
3. 다형성 (다양한 형태의 성질 / 오버 로딩 오버 라이딩 캐스팅)
4. 상속성
추상화(Abstraction)란?
-어떠한 물체(Object)를 대상으로 주가 되는 특징을 강조하여 표현하고.
그 외 나머지 부분은 과감하게 생략하는 것.
추상화 = 객체 모델링
-클래스를 설계하는 기법이다.(물건의 기능과 속성을 추출해내는 작업)
-주가 되는 특징만을 표현한다.
-모든 물건은 할 수 있는 행위(기능)와 표현할 수 있는 값(속성)으로 표현된다.
-모든 물건 ---표현 값(속성) ---> 멤버 변수(전역 변수)// 자바에서는 전역 변수라는 단어 X, 이해하기 쉽게 오늘만.. ㄴ 할 수 있는 행위(기능)---> 멤버 메서드
package day13; public class Maka { //변수선언영역 (클래스 하단에 선언해야함) String color; // 멤버 변수(전역) //생성자선언영역 - 멤버 변수의 초기화를 목적으로 두고 있음. 기능선언영역 위에 선언해야함. public Maka() { //생성자명은 클래스명과 동일하게 color = "검정"; } //기능선언영역(변수 선언 하단에 선언해야함.) public void writeMaka() { //멤버 메서드 /*static은 정적메모리할당키워드로 프로그램 시작전 준비하는 것 / 생략 가능하다. * 동적메모리는 준비가 되어있지 않아도 시작할 수 있는 것. */ System.out.println(color+"색상의 마커로 글을 씁니다~"); }멤버 변수는 클래스 하단에 선언.
생성자는 멤버 메서드 위에 선언.
멤버 메서드는 변수 선언 하단에 선언package day13; public class MakaTest { public static void main(String[] args) { System.out.println("프로그램의 시작"); Maka m1 = new Maka (); //m1은 객체, 물건이라고 생각. m1.color = "파랑"; m1.writeMaka(); Maka m2 = new Maka(); //같은 설계도로 찍어냈을뿐 다른 물건 m2.color ="노랑"; m2.writeMaka(); Maka m3 = new Maka(); m3.color = "빨강"; m3.writeMaka(); Maka m4 = new Maka(); /*클래스가 아닌 생성자의 호출 // 아무것도 만들지 않는다면 JVM이 비어있는 생성자를 자동으로 만들어줌 */ m4.writeMaka(); System.out.println("프로그램의 끝"); } }
생성자란?
클래스를 객체로 만들때 해당 객체의 멤버변수들을 초기화 해주는 역할의 메소드
//생성자 형식
//접근 지정자 생성자명(){
//초기화 과정;
}
public Maka() { //생성자명은 클래스명과 동일하게
}
알아 두기!
1. 생성자는 반환타입이 없다.
ㄴ 기능에 대한 목적이 없다.멤버 변수를 초기화하는게 목적이다.(메모리 공간을 할당 받는다)
2. 생성자명은 반드시 클래스 이름과 동일해야한다.(대소문자까지도)
3. 접근지정자는 거의 95% public 을 사용한다.
4. 소멸자는 C와 C++에는 존재하지만 자바에서는 가비지컬렉터가 있어 소멸자가 존재하지 않는다.
5. static은 정적메모리할당키워드로 프로그램 시작전에 준비하는것이다.
동적메모리는 준비가 되어 있지 않아도 시작 할 수 있는것이며 이 자리는 생략 가능하다.
'개발자 > 백엔드 웹 개발자 과정(국비)' 카테고리의 다른 글
| 2022년 11월 28일 _ 16회차 (추상 클래스(abstract)) (0) | 2022.11.28 |
|---|---|
| 2022년 11월 25일 _ 15회차(다형성(오버로딩,오버라이딩)/상속) (0) | 2022.11.25 |
| 2022년 11월 16일 _ 11회차(메서드) (0) | 2022.11.16 |
| 2022년 11월 15일 _ 10회차(배열복습, 2차원 배열 ) (0) | 2022.11.15 |
| 2022년 11월 14일 _ 9회차(배열) (0) | 2022.11.14 |