일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 노마드코더
- 환경설정
- 스프링
- SQL 명령어
- 타입
- java설치
- 플랙스박스기본
- numpy
- 관계형데이터베이스
- HTML5
- SQL
- 이클립스
- 리액트
- REACT
- Eclipse
- Flexbox Froggy
- 자바스프링
- SQL 연산자
- spring
- java spring
- 객체지향프로그래밍
- spring 환경설정
- 자바 스프링
- SQL 문제
- 오산대맛집
- Hooks
- node.js
- ubuntu
- 람다식
- Flex Box 기본
- Today
- Total
이것저것
[Java] 객체 지향 프로그래밍 본문
비행기를 만들때 설계도가 필요하다.
Java에서 설계도는 class에 속한다.
부품하나하나를 객체라고 한다.
3만개의 부품을 가지고 비행기를 만들었다하는 것을 객체지향프로그래밍이라고 한다.
설계도 없이 만든 제품이 있다면 객체지향 프로그래밍을 위반했다.
설계도를 만들기 위해서 설계도를 만드는 방법을 배우는 것이 아니다.
남들이 만들어 놓은 설계도를 볼 수 있는 능력을 키우기 위해서 설계도 만드는 방법을 배운다.
OOP : Object Oriented Programming 객체 지향 프로그래밍이라고 한다.
프로그래밍은 3가지로 이루어진다.
- 생성자
- 필드 (변수)
- 메소드 (함수)
클래스 안에서 함수를 만들면 메소드라고하고, 클래스 밖에서 만드는 것을 함수라고한다.(?!)
하지만 자바에서는 밖에다가 함수를 만들 수 없기 때문에 메소드를 함수라고 말하는 것이다.
내가 원하는 제품을 만들기 위해서 설계도에 필요한 부품(클래스)들을 가져와서 완성하는 것을 캡슐화라고 한다.
캡슐화를 더 쉽게 얘기하면 종합 감기약을 보면 콧물, 재채기, 가래 모두 낫는다고 써있는데 콧물약, 재채기약, 가래약을 하나의 캡슐에 넣은 것과 같은 의미이다.
캡슐화는 가급적 안의 내용물을 많이 숨길수록 더 좋다.
일자나사와 십자나사의 설계도에서 다른점은 드라이버가 들어가는 모양만 다르다.
나사의 코드를 짰다고 가정하면 일자와 십자의 클래스를 비교해보면 머리의 모양을 제외한 나머지 코드는 동일하다.
그러므로 머리 모양의 코드를 따로 클래스로 만들어 놓으면 다른모양의 나사를 쉽고 가볍게 만들 수 있다.
///
가급적이면 코드를 분리하는 이유는 하나에 모든 기능을 추가하게 되면 수정도 힘들뿐더러 코드가 너무 무거워지게된다
이를 분리해서 필요할때 가져다가 쓰는 것을 상속이라고 한다.
아주 다양한 형태의 결과가 나오는 것을 다형성이라고 한다.
프로그램을 짜는 시점에서 어느방향으로 갈지 알 수 없고 결과가 어떻게 나올지 모르는 것이 다형성이다.
자바는 처음부터 끝까지 다형성이다.
다형성을 이용해서 만드는 프로그램을 디자인 Pattern이라고 한다. (배울려면 시간이 꽤 걸리고 양이 엄청 방대하다...)
디자인패턴 관련 책
- GOF의 디자인패턴 (난이도가 매우 높다, GOF에 대해서 무엇인지 알려주는 책...)
- head First Design Patterns(호불호가 갈리지만 쉽다.)
디자인패턴중에서 기억나는 5가지를 말해보라는 면접질문도 나올수도있다.
인스턴스 : 클래스를 가지고 객체를 만드는 중간 과정 = new를 가지고 객체를 생성하는 것, 객체라고 생각해도된다.
클래스는 무조건 영문자로 이루어지고 앞자리는 대문자 만 생각하면된다.
파일을 새로 만들어서 클래스를 만들때는 public을 적고 파일안에 다른 class를 만들면 public을 적지 않는다.
하나의 파일에 public class는 단 한개만 존재해야한다. 나머지는 class만 적어준다.
필드는 천개를 적던 만개를 적던 메모리와는 관계가 없다.
생성자
- 생성자는 함수이다. = 생성자 함수 .
- 생성자 함수는 반드시 클래스 이름과 동일해야한다.
- 생성자 함수는 리턴값을 가질 수 없다. = void 제거
- 생성자 함수는 사용자가 임의로 호출할 수 없다.
- 생성자 함수는 객체가 생성될 때 자동호출 된다.
- 생성자 함수는 함수 오버로딩을 할 수 있다.
- 생성자 함수를 사용하는 목적은 필드변수 초기화가 목적이다. ☆☆☆
기본생성자
- 자동으로 만들어 지는 생성자(디폴트 생성자)
- 자동으로 만들어진다 하더라도 직접 만드는 것이 좋다.
- 인수전달이 있는 생성자를 만들면 기본생성자는 자동으로 생성되지 않는다.
=> 그러므로 항상 기본생성자도 만들어 주는 습관을 갖는게 좋다.
return을 여러개 하고 싶다면 class를 여러개 만들어서 객체를 여러개 만들어 return 해주면된다.
class를 이용해서 만들어 지는 객체를 this라는 대명사로 만들어 놓고 사용한다.
Apple a = new Apple(); 의 객체를 a로 할지 apple로 할지 ap로 할지는 모르기때문에 this로 그 객체를 명시한다.
-----------------------------------------------------------------------------------------------------------------------------------
톰켓은 데이터를 주고받는 중간서버 역할을 한다.
호출을 하면 주소창에 index.html, index.jsp가 저절로 붙는다.
'Java > Java 공부' 카테고리의 다른 글
자바란 (0) | 2021.03.31 |
---|---|
[Java] 람다식, interface (0) | 2020.04.22 |
[Java] 알아두면 좋은 정보들 (0) | 2020.04.15 |
[Java] break문과 continue문 (0) | 2020.03.29 |
[Java] keyCode 사용법 (0) | 2020.03.29 |