728x90
20220908(목)
- 목차
- 클래스
- 필드
- 메소드
- 생성자
- 인스턴스 멤버
- static
< 객체 지향 프로그래밍 >
- OOP (Object Oriented Programming)
➡ 객체 지향 프로그래밍
: 부품에 해당하는 객체들을 먼저 만들고, 이것들을 하나씩 조립해서 완성된 프로그램을 만드는 기법 - C++, C#, Java 언어 : 클래스 기반의 객체지향 언어.
- 객체 : 세상에 존재하는 모든 것들
- 클래스 : 설계도(개체의 속성과 동작 모음)
더보기
ex)
기업체
- 고객관리(회원)
- 회원(객체)
속성(필드 : 변수) 이름, 나이, 성별, 몸무게, ... 등 - 품사(명사)
기능(동작, 행위 : 메서드) : 품사(동사)
- 회원가입, 회원수정, 회원삭제, ...
public class Member {
// 내용 & 속성
String name;
int age;
char gender; // 'M', 'F'
// 기능
void register() { }
void modify() { }
void login() { }
}
< 클래스 >
- new : 메모리 생성 연산자 ➡ heap 영역에 메모리 생성
- ex)
1) Student.java 파일에 public class Student { } 클래스 정의
2) StudentExample 파일에 Student 클래스 선언, main() 메소드에서 Student 객체 생성
public class StudentExample {
public static void main(String[ ] args) {
Student s1 = new Student(); // 기억장소 생성
Student s2 = new Student(); // s1과 완전히 독립된 서로다른 객체(메모리 영역 상이) } } - 클래스의 구성 멤버
클래스의 구성 멤버 | public class ClassName { } | |
필드 Field | 객체의 데이터가 저장되는 곳 | int fieldName; |
생성자 Constructor | 객체 생성 시 초기화 역할 담당 필드의 값을 설정하거나 메소드를 호출해서 객체 사용 준비 역할 수행 |
ClassName( ) { ... } |
메소드 Method | 객체의 동작에 해당되는 실행 블록 | void methodName( ) { ... } |
< 필드 사용 >
- 객체 내부 : 필드 이름으로 바로 접근 가능
- 객체 외부 : 변수.필드이름으로 접근
- Car.java ➡ 붕어빵 기계 세팅 완료
- CarExample.java ➡ 객체 생성 및 필드값 읽기 & 변경
- myCar1 & myCar2 : 기억장소 재사용으로 편리하다.
< 생성자 메소드 >
- 생성자 메서드
: 힙영역에 생성된 기억장소의 값을 초기화. 개발시 필요한 초기값으로 시작. - 생성자 메서드 수동으로 정의하면, 디폴트 생성자 = new Car(); 가 컴파일과정에서 자동생성이 안된다.
< 생성자 오버로딩 >
- Constructor : 생성자
- 생성자 오버로딩 : 매개 변수를 달리하는 생성자를 여러 개 선언하는 것
(매개 변수의 타입, 개수, 선언된 순서가 똑같을 경우 매개 변수 이름만 바꾸는 것을 생성자 오버로딩 X) - 원래는 자바에서 같은 메소드는 여러개 만들 수 없는데, '생성자 오버로딩'은 미리 여러개 만드는 거 허용됨!
< 다른 생성자 호출 this() >
- 사용이유
생성자 오버로딩이 많아질 경우, 생성자 간의 중복된 코드 발생가능
필드 초기화 내용은 한 생성자에만 집중적으로 작성하고 나머지 생성자는 초기화 내용을 갖고 있는 생성자를 호출 - ex)
this(model, color, 250); 을 중복 코드 대신 삽입
< 메소드 >
- 메소드
객체의 동작에 해당하는 중괄호 { } 블록
메소드 호출 시 중괄호 블록 내 모든 코드들이 일괄적으로 실행됨 - 메소드 오버로딩
- 클래스 내에 같은 이름의 메소드를 여러개 선언하는 것으로
- 하나의 메소드 이름으로 여러 기능을 담는다.
ex) System.out.prinln( ) ➡ ctrl + space 치면 기능별 리스트 확인 가능
- 개발자의 건강을 위해 만들어진 것 : 이름 만드는 불편을 줄여주기 위함
< 인스턴스 멤버와 정적 static >
- 인스턴스 멤버
객체(인스턴스)를 생성한 후 사용할 수 있는 필드와 메소드
지금까지 작성한 모든 필드와 메소드 ➡ 인스턴스 멤버들 - 정적 (static)
클래스에 고정된 멤버로서 객체를 생성하지 않고 사용할 수 있는 필드와 메소드
객체마다 갖고 있을 필요가 없는 변하지 않는 공용적인 데이터
728x90
'🏫 Open API_JAVA' 카테고리의 다른 글
[37일차] final / 접근 제한자 / 타입 변환과 다형성 / Oracle Database 설치 (0) | 2022.09.15 |
---|---|
[36일차] static / 싱글톤 / final / import 문 / 디버깅 / getter setter / 상속 / 재정의 (0) | 2022.09.14 |
[34일차] 객체배열 / main() / 다차원 배열 / 배열복사 / 향상된 for문 (0) | 2022.09.10 |
[33일차] 문자열 등식 / 논리연산자 / 비트 이동 연산자 / 삼항연산자 (0) | 2022.09.07 |
[32일차] Float & Double / 형변환(Casting) (0) | 2022.09.06 |