https://codepen.io/devcjh/full/KwKQKWV
객체 지향 프로그래밍 [oop]
(객체를 웬만하면 사용해라~)
클래스
객체 -> 변수(속성), 메서드(기능)
조건문, 반복문
메서드 안에서 사용 가능한 문법
메서드 밖에서는 사용 불가!
객체의 특징
추상화
상속
캡슐화
다향성
1) 추상화
내가 만들려고 하는 객체의 모양을 설계
어떠한 객체가 필요한데 내가 원하는대로
객체를 만들어내는것
(쓸데없는것 버리고 필요한것만 뽑아낸다_커스터마이징?)
전역변수(field)
클래스 안에서, 메서드 밖에서 선언된 변수
전역 -> 전 지역(클래스의 제한을 두지 않는)
자바는 클래스 없이는 코드를 작성할 수 없음!
자바에는 실질적인 전역변수라는 개념이 없다
전역변수는 전 지역(같은 클래스 내부)에서 사용 가능
전역변수는 값을 초기화히지 않으면 기본값으로 초기화 해준다
지역변수(local variable)
메서드 안에서 선언된 변수, 코드 블럭 내에서 선언된 변수
지역 -> 제한된 지역
특정 지역 내(본인이 만들어진 지역-메인 메서드)에서만 사용 가능
지역변수는 값을 초기화하지 않으면 사용할 수 없다
배열 객체
배열 객체와 사용자 정의 객체 차이점
사용자 정의 객체
변수(속성)
객체를 표현하기 위한 데이터, 저장
메서드(기능)
실행을 위한 기능, 동작
메서드 만드는 방법
접근제어자 static 유무 리턴타입(void/임시) 메서드명() {
}
접근제어자 static 는 빠져도 굴러가나
리턴 타입이랑 메서드명은 필수
void -> 허공의~
리턴 없음.
메서드는 아무곳에서나 만들수 있는게 아님
메서드는 클래스 내에서만 존재할 수 있다
클래스 내에서만 -> 클래스 안에서만(메서드안에서 메서드 x)
변수의 생명주기
변수의 스코프
라이프 사이클 검색 요망!
객체의 생성 이유(목적) -> 복수개의 데이터를 다루기 위해서
// 변수는 오직 단 하나의 값만 가질 수 있는데 어떻게 객체(복수개의 데이터를?)..?
//
// int[] arr = new int[3];
// .
// .
// .
// int -> 정수(단수)
// int[] -> 정수들 (복수)
// arr -> 변수명
// [] -> 어떤 타입이든 간에 뒤에 [] 붙이면 복수형 취급이 됨(~들...)
// = -> 대입연산자
// new -> 객체 하나를 만들겠다
// int[3] -> new를 통해 만들어질 객체의 모양
// 객체의 개념
// 객체- 연관성이(중요!) 있는 복수개의 데이터를 다루기 위해 사용하는 문법
// 오직 정수형 데이터들만 들어갈 수 있는 arr라는 변수(하나의 공간)를
// int[3] 모양으로 된 객체 하나를 만들어서
// 객체를 컨트롤 할 수 있는 리모컨(주소값)--,.연결시키겠다.
//
// int[] arr = new int[3];
//
//
// arr[0] = 10;
// arr[1] = 20;
// arr[2] = 30;
//
// System.out.println(arr[0]);
// System.out.println(arr[1]);
// System.out.println(arr[2]);
// 자바에서 변수를 만들었는데 초기화를 안하고 선언만 했을시
// 그러면 기본값으로 초기화 된다(지역변수는 해당 x)
// * null -> 데이터가 없다
//
//
//
// 자바에서 예외처리 방법
// 1번) try catch 방식
// try {
// 예외가 발생할 법한 코드를 적는 곳
// } catch() {
// 소괄호 안에 적혀 있는 예외상황에 맞는 예외 발생시
// 처리할 코드를 적는곳
// }
// finally {
// catch 상황 발생 후에도 무조건 실행해야하는 부분!
// }
//
// 2번)
// throw -> 예외 던지기(트라이 캐치와도 연계 가능)
자바에서 사용하는 모든 데이터 타입은 클래스가 존재한다
// 클래스가 있어야(타입이 있어야) 데이터 타입으로의 활용이 가능하다
// 클래스가 있어야(타입이 있어야) 객체를 만들 수 있다
// 클래스 = 타입