일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 옵션태그
- Integer 값 비교
- 멀티 페이지
- select
- 비교
- r타입 비교
- 리스트
- 2차원 list
- 값 비교
- 인티저 값 비교
- 값 추가
- 2차원배열
- 마우스 올리면
- list
- R타입비교
- 배열 값 추가
- String 찾기
- 파라미터 무한
- 2차원 리스트
- 마우스 올릴때
- 무한 파라미터
- String 검색
- 플러터 null
- 배열 생성자
- 값 넣기
- 같은지
- jsp 테이블
- R 비교
- jsp
- 배열 값
- Today
- Total
JAVA를 JAVA라
[JAVA] 객체지향 본문
* 절차지향은 하나의 로직을 순서대로 진행하여 처리합니다.
* 객체지향은 객체의 호출 순서에 영향을 받습니다.
*
* 객체를 만들어 순서에 연연하지 않고 자주 쓰거나 필요한 부품은
* 따로 정의하여 모듈화 하는 등의 장점을 가진 방법입니다.
*
* 객체
* 우리 주변에 있는 모든 것들은 객체이다. 객체를 만들기 위해선 클래스가 필요하다.
* = 현실에 존재하는 사물들
*
* 클래스
* 붕어빵틀 이라고 생각하자. 클래스 안에 메소드가 들어간다.
* = 객체를 컴퓨터에서 구현하기 위해 필요한 설계도 같은 개념
* 인스턴스 = 메모리 상에 만들어진 객체
*
* 메소드
* 행동 이라고 생각하면 편하다..
* = 클래스 속에 존재. 어떤 기능을 수행하는 명령 문장들
package jun01;
//객체 지향
/*
* 절차지향 프로그래밍 객체지향 프로그래밍
* 1.2.3.4 ... 어제까지 이걸 했죠? 호출해서 실행..
*
* 객체의 행동은 동사형으로 이름을 정한다. ~~하다. 뒤에 괄호가 있음
* 메소드, 행위, 함수, 일한다, 보고 듣는다. ...
* 객체의 속성은 명사형으로 이름을 정한다... 수치화 할 수 있는 것들? 소문자로 시작,
* 멤버변수, 특성, 이름, 필드, 상태, 주소, 직업 등...
*
* 하나의 클래스 파일로 똑같은 여러개가 나온다? 모양이 똑같다.
* 붕어빵과 붕어빵틀! 모양은 다 똑같음!!(모양 = 속성)
* 붕어빵틀은 클래스! 붕어빵은 인스턴스 들!
* 객체는 클래스가 있어야 생성 가능하다!
* ====> 클래스에서 만들어진 객체를 인스턴스라고 한다!
*
*
* static! 객체 생성 없이 클래스 명으로 접근
*/
public class OOP01 {
int number; //이게 인스턴스 변수@@ 초기화를 안해도 자동으로 해준다.
// 여기3 = CODE : 변수 선언문 = 인스턴스 변수 = 멤버변수 = 멤버 필드!
//인스턴스 변수 = 클래스 바디에 생성
// 초기화 하지 않아도 자바가 알아서 해줍니다.!!(지역변수와 다른 점)
// 클래스에서 사용하기 위해 이 곳에서 만듭니다.
//지역변수 = 메소드 괄호 안에서 선언(){여 기}
// 괄호가 닫히면 사라집니다. (->데이터 스코프)
// 사용하기 전에 초기화 해야합니다. (값이 미리 대입되어야 해요)
public static void main(String[] args) { // 메인 메소드
int app = 0;
System.out.println(app);
// 지금까진 여기에만 적었습니다.
OOP01 oop01 = new OOP01(); //여기서 oop01이 인스턴스이다!
//클래스이름 인스턴스 new(객체생성) 클래스이름(생성자 메소드)
oop01.print2(); //. = 소유의 개념. 즉, oop01안의 print2()를 호출
//oop01이라는 변수가 갖고있는 메소드 실행시켜줘!
System.out.println(oop01.number); //지역변수면 초기화를 안했기 때문에 에러 뜰 것이다!
oop01.number = 1000;
System.out.println(oop01.number);
Apple apple = new Apple();
apple.print();
//다른 메소드를 실행시키기 위해서 호출하기
}
// 여기2 = 메소드를 만들고, 그 속에 코드를 적는다. (이미 class파일 내부니까!)
void print2() { // 메소드, void는 return값이 없다.
System.out.println("print2() 메소드. 실제 코드가 여기 들어갑니다.");
}
int print3() {
return 0;
}
String print4() {
return "Hello";
}
double print5() {
return 3.14;
}
}// end of class
//여기1 = class를 만들고, 메소드를 만들어 그 속에 코드를 적는다
class Apple { // 클래스는 항상 대문자로 시작합니다!
public void print() { // 메소드
System.out.println("Apple.print(); 실제 코드가 여기 들어갑니다."); // code
}
}
//클래스 파일을 한 파일에 여러개 만들수도 있구나!
/*
* [접근지정자(public)] static void(리턴타입) 메소드명([파라미터 혹은 매개변수]){}
* []는 있어도 되고 없어도 된다~
*
* void는 값을 리턴하면 에러!!
*
* [접근지정자] : public, private, 생략, protected
*
*/
* 캡슐화 = 보안 = 보호 가능
* 관련된 데이터(필드)와 기능(메소드)가 하나의 묶음으로 관리
*
* 상속
* 이미 작성된 클래스(부모)를 이어받아서 새롭게 만드는 것
* 자식 클래스는 부모 클래스의 모든 속성(필드)과 동작(메소드)를
* 사용할 수 있습니다.
* 필요한 기능은 자식 클래스에서 추가해서 사용합니다.
*
* 추상화
* 불필요한 것을 제외하고 필요한 것만 유지합니다.
* 실제 객체를 인스턴스화 할 때 필요한 내용만 남기고
* 나머지는 제외하는 것 입니다.
*
* 다형성
* 객체의 동작이 변경되는 것
* 파라미터 상황에 따라 동작이 변경되는 것
*
'JAVA > JAVA 수업' 카테고리의 다른 글
[JAVA] 객체(Object)와 인스턴스(Instance) (0) | 2021.06.01 |
---|---|
[JAVA] 21.06.01 (0) | 2021.06.01 |
[JAVA] 21.05.31 (0) | 2021.05.31 |
[JAVA] 21.05.28 (0) | 2021.05.28 |
[JAVA] 21.05.27 (0) | 2021.05.28 |