///////
Search
🎩

클래스

이신희_0922

객체지향프로그래밍이란?

객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있다.

객체체지향언어의 주요 특징

코드의 재사용성이 높다.코드의 관리가 용이하다. -> 유지보수신뢰성 높은 프로그래밍이 가능하다. -> 코드 중복 제거

클래스(class)와 객체(object)

클래스 정의 : 클래스란 객체를 정의해 놓은 것클래스 용도 : 클래스는 객체를 생성하는데 사용
프로그래밍에서 객체는 클래스에 정의된 내용으로 메모리에 생성된 것을 의미한다.
객체의 정의 : 실제로 존재하는 것. 사물 또는 개념객체의 용도 : 객체가 가지고 있는 기능과 속성에 따라 다름.
클래스는 단지 객체를 생성하기 위한 도구일 뿐, 객체 그 자체는 아니다. 클래스를 통해 객체를 생성하면, 기능을 추가하거나 변경하기 용이하며 매번 객체를 어떻게 만들지 고민할 필요가 없어진다. JDK는 프로그래밍에 유용한 많은 수의 클래스를 기본적으로 제공하고 있다.

객체와 인스턴스

클래스로부터 객체를 만드는 과정을 클래스의 인스턴스화(Instantiate)라고 하며, 어떤 클래스로부터 만들어진 객체를 그 클래스의 인스턴스(instance)라고 한다.

객체의 구성요소

객체는 속성(멤버변수)과 기능(메서드), 두 종류의 구성요소로 이루어진다. 객체는 속성과 기능의 집합이라고 할 수 있다. 객체가 가지고 있는 속성과 기능을 그 객체의 멤버라 한다.

인스턴스 생성과 사용

클래스명 변수명; 변수명 = new 클래스명(); Tv tv1; tv1 = new Tv();
Plain Text
복사
배열과 마찬가지로 클래스의 객체를 참조하기 위한 참조변수를 먼저 선언하고 객체를 생성한 후 객체의 주소를 참조변수에 저장해야 한다.
class Tv{ int channel; int volume; boolean power; void power(){ power =!power; } void channelUp(){ channel++;} void channelDown(){ channel--;} void volumeUp(){ volume++;} void volumeDown(){ volume--;} } class TvTest{ public static void main(String args[]){ Tv t ; //참조 변수 t 선언 t = new Tv(); //Tv인스턴스 생성 t.channel = 11; t.channelDown(); //메서드 실행 } }
Plain Text
복사
인스턴스는 참조변수를 통해서만 다룰 수 있으며, 참조변수의 타입은 인스턴스의 타입과 일치해야한다.

클래스가 객체가 되기까지.

박수진_0922

Today Example

원의 넓이 구하기
class Circle { int radius; //4byte String cololr; //4byte double calcArea() { //4byte return 3.14 * radius * radius; } } //총 12byte public class CircleTest { public static void main(String[] args) { Circle obj; //데이터타입과 객체명 obj = new Circle(); //new라는것은 메모리에 올려 값을 올린다는것이다. obj.radius = 100; obj.cololr = "blue"; double area = obj.calcArea(); System.out.println("원의 면적 = " + area); } }
Java
복사
Circle (데이터타입: 참조형) / obj(객체명)
obj = new Circle() → obj에 class Circle의 주소를 담는다.
이것을 객체라고 표현한다.
obj객체에는 몇바이트일까? - 4byte - 이유는 2^32 = 4G 이것의 주소값이 들어가기 때문이다. 그래서 참조형 이라는 표현을 사용한다.
사각형 넓이 구하기
class Rectangle{ int width; int height; public void setWidth(int width) { this.width = width; } public void setHeight(int height) { this.height = height; } public int getArea(){ return width * height; } } public class RectangeTest { public static void main(String[] args) { Rectangle rec = new Rectangle(); rec.setWidth(10); rec.setHeight(10); System.out.println(rec.getArea()); } }
Java
복사
setWidth, setHeight 함수로 넓이 지정
getArea함수로 넓이와 높이를 구하여 반환해준다.