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)

블로그 메뉴

  • 홈
  • 방명록

공지사항

인기 글

태그

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

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Dorothy_YANG

With Dorothy

[JAVA 객체 지향 프로그래밍] 클래스 / 인스턴스 / static / this_by생활코딩
🤯TIL/JAVA

[JAVA 객체 지향 프로그래밍] 클래스 / 인스턴스 / static / this_by생활코딩

2022. 9. 17. 20:17
728x90

< 남의 클래스 & 남의 인스턴스 >

  • 클래스
    연관된 메서드 + 변수를 묶은 것
    (class라는 정리정돈 상자를 통해 프로그램을 만든다 = 이것이 객체지향 프로그래밍)

  • 클래스 ➡ 인스턴스(객체)
    클래스들을 필요할 때마다 계속 소환한다면 코드와 수정이 복잡해짐
    그래서 긴 호흡이 필요한 클래스들은 복제본인 인스턴스를 만들어 쉽게 접근이 가능하도록 함

  • 인스턴스( = 객체)
    어떤 상태를 가지고 있는 클래스의 복제본을 변수에 담은 것
    즉, 하나의 클래스로부터 여러 개의 인스턴스를 만들 수 있다.

  • 객체와 인스턴스 
    출처 : https://gmlwjd9405.github.io/2018/09/17/class-object-instance.html
객체 Object 인스턴스 Instance
소프트웨어 세계에 구현할 대상
클래스에 선언된 모양 그대로의 생성된 실체

클래스의 인스턴스라고도 부름
모든 인스턴스를 대표하는 포괄적인 의미를 갖는다.
설계도를 바탕으로 소프트웨어 세계에 구현된 구체적인 실체
객체를 소프트웨어에 실체화하면 '인스턴스'가 됨

인스턴스는 객체에 포함된다고 볼 수 있음

 


< 클래스 >

  • 클래스명.내부메소드
    이미 저장된 값으로 불러올 때마다 내부 데이터를 가져온다. 
    필드와 메소드를 클래스 안에 쓰고, 메인에서는 클래스명.메소드 와 같이 호출하는 식으로 코드를 짬

    ➡ 더 정리 정돈된 코드처럼 보인다 :)

  • 하나의 파일에 여러 개의 클래스를 만들 수 있나요?
    YES!
    class 작성하고 저장하면, 클래스별로 파일이 생성된다 :)

 


< 인스턴스 ( = 객체) >

  • 인스턴스 필요 이유
    여러 상태의 클래스가 동시에 필요할 때 클래스 앞에 new를 붙여서 클래스의 복제본( = 인스턴스)을 만들어 
    서로 다른 상태를 유지할 수 있습니다. 
    - 원형 : class / 복제본 : instance / 복제할 때 쓰는 것 : new

  • ex)
    FileWriter f1 = new FileWriter(); ➡ FileWriter를 복제한 f1이란 인스턴스가 생긴 것
    (FileWriter라는 데이터 타입이다. f1이라는 이름을 가진 = new 복제했다 FileWriter라는 클래스를)

    f1.write("Hello"); ➡ 그 인스턴스의 메소드를 호출하는 것을 통해서 인스턴스를 조작할 수 있게 된다.

  • 인스턴스와 클래스의 차이
인스턴스 ( = 클래스의 복사본) 클래스
하나의 클래스로부터 다른 결과를 도출해야 할 때
여러 개의 인스턴스 사용시
➡ 데이터를 따로 관리하기 쉽고 편안해진다.
(클래스를 여러 번 수정하지 않아도 됨~)
어떠한 메소드의 가장 뿌리가 되는 코드

 


< static >

  • static 유무의 차이
    static 존재 ➡ 클래스 소속
    static 없음 ➡ 클래스를 복제한 인스턴스 소속

  • 인스턴스에서 static 있는 변수 혹은 메소드 수정 시
    class에서 그 원본 자체가 수정이 되고
    그 변수, 메서드를 가리키는 모든 곳에서 수정이 된다.

  • 인스턴스에서 static이 없는 변수 혹은 메소드를 수정 시
    (static이 없는 변수 혹은 메소드는 인스턴스 생성 시 독립적으로 새로 생성된 것이므로)
    그 인스턴스 내에서 독립적으로 수정이 된다.

출처 : 생활코딩_static

class의 변수를 바꾸면 모든 instance의 변수의 값이 바뀐다.

인스턴스에서 클래스 값을 바꿔도 모든 변수의 값이 바뀐다.

 


< 생성자와 this >

  • 생성자
    java는 클래스와 동일한 이름을 가진 메소드가 있으면, 그 메소드를 생성자로 지정하는데
    생성자는 클래스가 인스턴스화 되었을 때 실행된다. 
  • this
    클래스 내에서 this는 클래스가 인스턴스화 되었을 때 생성된 인스턴스를 가리킨다.

 


  • 출처
    https://opentutorials.org/course/4074
 

JAVA 객체 지향 프로그래밍 - 생활코딩

수업소개 많아진 변수와 메소드 때문에 고통스럽나요? 이 수업은 서로 연관된 변수와 메소드를 모아서 이름을 붙인 객체를 다루는 수업입니다. 객체를 이용해서 코드의 구조를 세우는 프로그

opentutorials.org

 

728x90
저작자표시 (새창열림)

'🤯TIL > JAVA' 카테고리의 다른 글

[이것이 자바다 - 연습문제] chapter 01. 자바 시작하기  (0) 2022.10.10
[JAVA 상속] Overriding / Overloading / this / super / 생성자_by생활코딩  (0) 2022.09.17
[JAVA method(함수)] 기본 형식 / 입력 값 / 출력 / 활용_by생활코딩  (0) 2022.09.17
[JAVA 제어문] boolean / 비교연산자 / 조건문 / 문자의 비교 / 반복문과 배열문_by생활코딩  (0) 2022.09.17
[JAVA 입문] 입력과 출력_by생활코딩  (0) 2022.06.30
    '🤯TIL/JAVA' 카테고리의 다른 글
    • [이것이 자바다 - 연습문제] chapter 01. 자바 시작하기
    • [JAVA 상속] Overriding / Overloading / this / super / 생성자_by생활코딩
    • [JAVA method(함수)] 기본 형식 / 입력 값 / 출력 / 활용_by생활코딩
    • [JAVA 제어문] boolean / 비교연산자 / 조건문 / 문자의 비교 / 반복문과 배열문_by생활코딩
    Dorothy_YANG
    Dorothy_YANG
    Slowly but Surely, 비전공 문과생의 개발공부

    티스토리툴바