[Java]자바 프로그래밍(클래스와 객체 - 2)

2024. 1. 3. 21:48· 공부/Java
목차
  1. 클래스
  2. 클래스와 객체
  3. 클래스의 구조
  4. 클래스의 구조 (TV)
  5. 객체 생성
  6. 기초 변수와 참조 변수
  7. 객체의 필드와 메소드 접근
  8. 메소드
  9. 메소드의 구조
  10. 인수와 매개 변수
  11. 인수
  12. 매개 변수
  13. 객체의 일생
  14. 객체의 생성
  15. 참조값을 복사한다면?
  16. 객체의 소멸
  17. 문자열 객체
  18. 문자열 객체 생성
  19. 문자열 객체의 메소드 호출
  20. 문자열 클래스의 메소드
반응형

클래스와 객체

  • 클래스
  • 객체 지향
  • String 클래스

클래스

  • 클래스(class) : 객체를 만드는 설계도(도면)
  • 클래스로부터 만들어지는 각각의 객체를 특별히 그 클래스의 **인스턴스(instance)**라고도 한다.

Untitled.png

  • 객체를 클래스라는 설계도로 생성된다.

클래스와 객체

Untitled.png

클래스의 구조

class 클래스이름 {
	// 필드 정의
	public int field1; // 객체의 속성

	// 메소드 정의
	void method1(parameter) { ... } // 객체의 동작을 나타낸다
}

클래스의 구조 (TV)

class Tv {
	private int ch;
	private int vol;
	private boolean power;

	void Tv() { // 생성자
		this.ch = 1;
		this.vol = 10;
		this.power = true;
	}

	void chChange(int ch) { // 채널 변경 메소드 == 동작
		this.ch = ch;
	}

	...
}

객체 생성

  • 미리 만들어놓은 클래스로 객체를 생성하여 보자.
Tv mytv = new Tv(); 

→ new 라는 연산자를 이용하여 Tv의 객체를 생성하고 객체의 메모리 참조값을 mytv라는 변수에 대입합니다.

즉 mytv는 참조변수입니다.

  • 자바에서 객체를 생성하는 방법은 new 한가지뿐입니다.

기초 변수와 참조 변수

  • 기초 변수
    • byte
    • int
    • long

기초 변수는 변수에 실제 데이터가 저장되는 것이다.

  • 참조 변수
    • 배열
    • 클래스
    • 인터페이스

참조 변수는 변수에 실제 데이터가 저장된 메모리의 주소가 저장되는 것이다.

객체의 필드와 메소드 접근

  • 도트( . ) 연산자를 사용한다.
mytv.ch = 100; 

→ mytv의 ch 필드에 접근을 한다는 의미입니다.

  • 하지만 위에서 작성한 class에서 ch 필드는 private 이기때문에 객체 내부에서만 접근을 할 수 있습니다.
  • 외부에서 접근이 가능하게 하려면 public 이나 기타 접근지정자를 써야합니다.
mytv.chChange(50); 

→ mytv의 chChange 메소드를 이용하여 객체 내부의 ch의 값을 변경합니다.

메소드

  • 메소드는 입력을 받아서 처리를 하고 결과를 반환하는 가상적인 상자와 같다.

Untitled.png

메소드의 구조

Untitled.png

인수와 매개 변수

  • 메소드 호출시 전달하는 값을 인수(argument)
  • 메소드에서 값을 받을 때 사용하는 변수를 매개 변수(parameter)

인수

mytv.chChange(50); // 50이라는 값이 인수 

매개 변수

class mytv {
	private int ch;
	
	void chChange(int ch) { // int ch가 매개 변수에 해당
		this.ch = ch;	
	}
}
  • 메소드 안에서 this 문을 사용하는 이유는 매개 변수와 필드가 동일하게 ch로 작명이 되어져 있는데 “ch = ch” 을 하면 시스템 내부 상으로 가장 가까운 변수를 찾아 값이 대입되기 때문에 매개 변수 ch에 매개 변수 ch의 값이 대입되기 때문에 mytv 클래스(this)의 ch을 뜻한다고 컴퓨터에게 알려 주는 것

객체의 일생

객체의 생성 → 객체의 사용 → 객체의 소멸

객체의 생성

Untitled.png

참조값을 복사한다면?

Car yourCar = myCar; 

Untitled.png

  • 두 개의 참조 변수가 하나의 객체를 가리키게 된다.

객체의 소멸

Car car1 = new Car(); // 1번 객체
Car car2 = new Car(); // 2번 객체

→ → →

car2 = car1; // car1와 car2가 같은 객체를 가리키게 된다. 

그러면 원래 car2가 가리키던 객체는 추후 **쓰레기 수집기(Garbage Collector)**에 의하여 자동으로 메모리 공간을 비운다.

문자열 객체

  • 자바에서 문자열은 객체이다.

문자열 객체 생성

String s = new String("Hello World!"); 

문자열 객체의 메소드 호출

String s = new String("Hello World!");
int leng = s.length();
// 12

문자열 클래스의 메소드

Untitled.png

반응형
  1. 클래스
  2. 클래스와 객체
  3. 클래스의 구조
  4. 클래스의 구조 (TV)
  5. 객체 생성
  6. 기초 변수와 참조 변수
  7. 객체의 필드와 메소드 접근
  8. 메소드
  9. 메소드의 구조
  10. 인수와 매개 변수
  11. 인수
  12. 매개 변수
  13. 객체의 일생
  14. 객체의 생성
  15. 참조값을 복사한다면?
  16. 객체의 소멸
  17. 문자열 객체
  18. 문자열 객체 생성
  19. 문자열 객체의 메소드 호출
  20. 문자열 클래스의 메소드
'공부/Java' 카테고리의 다른 글
  • [Java]자바 프로그래밍(필드와 메소드2)
  • [Java]자바 프로그래밍(필드와 메소드)
  • [Java]자바 프로그래밍(클래스와 객체)
  • [Java]자바 프로그래밍(반복문)
Future0_
Future0_
rm -rf /
Future0_
Luna Developer Blog
Future0_
전체
오늘
어제
  • 분류 전체보기 (112)
    • 프로그래밍 (4)
      • 알고리즘 (4)
    • 보안 (14)
      • Dreamhack (4)
      • Hackthebox (1)
      • Webhacking (9)
    • 프로젝트 (4)
    • 공부 (80)
      • Database (2)
      • Python (11)
      • System (4)
      • Java (13)
      • JSP (13)
      • Spring (11)
      • Kotlin (16)
      • 자료구조 (10)
      • 기계학습 (0)
    • Docker (4)
    • Github (2)
    • Tip (1)
    • 잡담 (2)

블로그 메뉴

  • 홈
  • 태그

공지사항

인기 글

태그

  • 코틀린기본문법
  • SpringBoot
  • docker
  • 보안
  • Database
  • 자료구조
  • cs
  • 자바빈즈
  • webhacking
  • Python
  • Java
  • api 통신
  • jsp
  • 알고리즘
  • 상속
  • 1.9.22
  • 컴퓨터
  • dreamhack
  • React
  • Kotlin
  • Computer science
  • ViewModel
  • shared preference
  • Android Studio
  • 디버깅키해시
  • 키 해시
  • spring
  • native app
  • android studio 삭제
  • 프로그래밍

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.0
Future0_
[Java]자바 프로그래밍(클래스와 객체 - 2)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.