Dorothy_YANG
With Dorothy
Dorothy_YANG
전체 방문자
오늘
어제
  • 분류 전체보기 (279)
    • Hi, I'm Dorothy 🕵️‍♂️ (21)
      • Slowly but Surely (18)
      • IT certifications (3)
    • 🤯TIL (80)
      • HTML & CSS (2)
      • Javascript & jQuery (13)
      • React (13)
      • C언어 (1)
      • JAVA (22)
      • Python (2)
      • Oracle SQL (10)
      • My SQL (5)
      • Spring (12)
    • 💻Programmers (17)
    • 🏫 Open API_JAVA (101)
    • 🌎 Project (10)
      • Shopping (10)
    • 💥 Error (24)
    • ⚙ Setting (23)

블로그 메뉴

  • 홈
  • 방명록

공지사항

인기 글

태그

  • 연습문제
  • 기간설정
  • CSS
  • 독학후기
  • 콜라보레이토리
  • SQLD합격
  • HTML
  • 코딩앙마
  • 시작일종료일
  • 백준
  • 창초기화
  • 노마드코더
  • Eclipse
  • 오류해결
  • 비쥬얼스튜디오코드
  • oracle
  • sql기간
  • colaboratory
  • 서버등록
  • SQL
  • AllArgsConstructor
  • googlecolaboratory
  • java
  • 이것이자바다
  • 파이썬온라인
  • Database
  • spring
  • 기간쿼리
  • SQLD합격후기
  • Javascript

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Dorothy_YANG

With Dorothy

[35일차] 클래스 / 필드 / 메소드 / 생성자 / 인스턴스 / static
🏫 Open API_JAVA

[35일차] 클래스 / 필드 / 메소드 / 생성자 / 인스턴스 / static

2022. 9. 12. 17:21
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( ) { ... }

 


< 필드 사용 >

  • 객체 내부 : 필드 이름으로 바로 접근 가능
  • 객체 외부 : 변수.필드이름으로 접근

Dorothy 작업


  • 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
    '🏫 Open API_JAVA' 카테고리의 다른 글
    • [37일차] final / 접근 제한자 / 타입 변환과 다형성 / Oracle Database 설치
    • [36일차] static / 싱글톤 / final / import 문 / 디버깅 / getter setter / 상속 / 재정의
    • [34일차] 객체배열 / main() / 다차원 배열 / 배열복사 / 향상된 for문
    • [33일차] 문자열 등식 / 논리연산자 / 비트 이동 연산자 / 삼항연산자
    Dorothy_YANG
    Dorothy_YANG
    Slowly but Surely, 비전공 문과생의 개발공부

    티스토리툴바