///////
Search
📖

클래스, 객체, 메서드, 스트링

태그
java
URL
날짜
2022/09/22
Java는 Object-Oriented Programming (OOP) 즉, 객체 지향 프로그래밍 언어 중 하나이다.
객체지향이론의 기본 개념은 ‘실제 세계는 사물(객체)로 이루어져 있으며, 발생하는 모든 사건들은 사물간의 상호작용이다.’라는 것이다.

Class란?

‘객체(object)를 정의해 놓은 것’
‘객체의 설계도 또는 틀’을 의미한다.
클래스는 객체를 생성하는데 사용되며, 객체는 클래스에 정의된 대로 생성된다.
컴파일하면 .java 파일이 .class 파일이 됨.
자바는 class 단위로 구성된다. (자바의 기본 단위) = 자바는 클래스 파일들 간의 결합이다.
클래스 파일이 모여서 하나의 프로젝트가 된다.
public class Hello { public static void main(String [] args) { System.out.println("hello world"); } } -> 이 부분 전체가 클래스다. hello라는 이름의 클래스
Java
복사
class는 멤버변수와 멤버메서드로 구성된다. (자바의 세부 단위)
public static void main(String [] args) { System.out.println("hello world"); } -> 이 부분이 main이라는 이름의 메서드이다. 이 main 메서드가 프로그램이 시작되는 시작점이다. 중괄호가 끝나면 main 메서드도 종료된다. (프로그램이 종료됨)
Java
복사
클래스 선언 방법
접근지정자 class 클래스명 extends 부모 클래스명 implements 인터페이스명1, 인터페이스명 2... { }
JavaScript
복사
멤버 변수, 메서드 선언 방법
1.
멤버 변수 선언
접근지정자 [그외지정자] 데이터타입 변수명; ex) private String name;
Java
복사
[ ] 안에 있는 건 생략 가능
2.
멤버 메서드 선언
접근지정자 [그외지정자] 리턴타입 메서드명([매개변수 선언]){} ex) public static void main (String [] args){}
JavaScript
복사

Object란?

‘실제로 존재하는 것’
눈에 보이는 사물 또는 개념 (설계도를 보고 만든 사물이나 개념)
클래스에 정의된 내용대로 메모리에 생성된 것을 객체라고 한다.
ex) TV설계도(클래스)는 TV라는 제품(객체)를 정의한 것이며, TV(객체)를 만드는데 사용된다.
또한 클래스는 단지 객체를 생성하는데 사용될 뿐, 객체 그 자체는 아니다. 우리가 원하는 기능의 객체를 사용하기 위해서는 먼저 클래스로부터 객체를 생성하는 과정이 선행되어야 한다.
ex)우리가 TV를 보기 위해서는, TV(객체)가 필요한 것이지, TV설계도(클래스)가 필요한 것은 아니다. TV설계도는 TV라는 제객체를 만드는 데만 사용될 뿐이다.
클래스
객체
제품 설계도
제품
TV 설계도
TV
붕어빵 기계
붕어빵

Instance란?

클래스로부터 객체를 만드는 과정클래스의 인스턴스화(instantiate)라고 한다.
어떤 클래스로부터 만들어진 객체를 그 클래스의 인스턴스(Iinstance)라고 한다.
ex) 단순히 ‘의자’는 객체(object)라고 할 수 있고, 시디즈의 TH-03B 설계도를 보고 만든 TH-03B 의자는 Instance라고 할 수 있다.
즉, 객체는 인스턴스를 대표하는 포괄적인 의미를 갖고 있으며, 인스턴스는 어떤 클래스로부터 만들어진 것인지를 강조하는 보다 구체적인 의미를 갖고 있다고 볼 수 있다.

1. class 내에 선언된 변수와 메서드

a.
멤버 변수(instance 변수): Data를 표현하기 위해서
멤버 변수의 데이터 타입에는 제한이 없다.
b.
멤버 메서드 (instance 메서드): 기능
예를 들어 TV의 속성으로는 전원 상태, 화면 길이, 높이, 색상, 볼륨, 채널과 같은 것이 있으며, 기능으로는 켜기, 끄기, 볼륨 높이기, 채널 변경하기 등이 있다.
속성(property)
멤버 변수(member variable), 특성(attribute), 필드(field), 상태(state)
기능(function)
메서드(method), 함수(function), 행위(behavior)
이처럼 객체 지향 프로그래밍에서는 속성과 기능을 각각 변수(속성)와 메서드(기능)로 표현한다.
int volume -> 볼륨이라는 멤버 변수 volumeUp() {...} -> 볼륨 키우기라는 메서드
Java
복사

2. Class 선언

접근지정자 [그 외 지정자] class 클래스명 [extends 클래스명 implements 인터페이스명, ...]{ **class 안에는 멤버 변수를 선언해야지 (instance변수) 접근지정자 [그외지정자] 데이터타입 변수명; (ex. String color;, int channel;) **멤버 메서드(instance 메서드) 선언 접근지정자 [그외지정자] 리턴타입 메서드명([매개변수 선언){ //이부분이 메서드의 영역임. 실행해야할 것들을 여기에 기술하기 (ex. public void channelDown(){}, public void channelUp(){}) } }
Java
복사
[ ]는 생략 가능함을 의미함. [그외지정자], [매개변수]는 생략 가능

3. 객체 생성

변수 선언 방식과 동일하다
클래스명 (참조)변수명 = new 클래스명();
Java
복사
대입 연산자(=) 기준으로 왼쪽은 클래스의 객체를 참조하기 위한 참조 변수를 선언한 것 오른쪽은 클래스의 객체를 생성 후, 객체의 주소를 참조 변수에 저장한 것
Student 타입의 참조변수 stu를 선언 Student 인스턴스를 생성한 후, 생성된 Student 인스턴스의 주소를 stu에 저장