티스토리 뷰

728x90

절차지향

- 순차적으로 처리하는 프로그래밍 방식

- 예)c언어
- 장점 : 속도가 빠름
- 단점 : 유지보수가 어렵다

객체지향

- 데이터와 절차를 하나의 덩어리로 묶어서 생각
- 예)자바
- 부품을 조립하는 것과 유사한 방식
- 단점 : 절차지향보다 느리다.
- 장점 : 유지보수가 좋다.

객체 지향 프로그래밍(OOP : Object-Oriented Programming)

특성 : 캡슐화, 상속, 다형성, 추상화

- 캡슐화 : 객체를 캡슐로 싸서 그 내부를 보호하고 볼 수 없게 하는 것
- 상속 : 하위 클래스가 상위클래스의 기능을 사용할 수 다
- 다형성 : 같은 이름의 메소드가 클래스 혹은 객체에 따라 다르게 구현 되는 것
- 추상화 : 여러가지 사물이나 개념에서 공통되는 속성이나 특성을 간추려서 표현

프로그래밍에서의 객체

- 실체 객체 중에서 프로그래밍 화 할 가치가 있거나 가능한 것

- 속성과 기능이 존재하는 것

- 프로그래밍화 가치 o : 학생, 선생님, 수업, 자동차, 비행기 등등 

학생(속성 : 학년, 성별, 이름 / 기능 : 등교하다. 공부하다. ) => 속성과 기능이 존재하기 때문

- 프로그래밍화 가치 x : 공기, 분위기, 냄새 등등

클래스 

- 객체를 표현한 설계도

- 객체를 코딩을 통해 클래스로 만듦

클래스의 용도

- 실행용 : main함수, 프로그램 실행에 관한 클래스, 다른 클래스에서 사용 X

- 라이브러리용 : Math, System, Arrays 등 다른 클래스에서 기능을 이용할 수 있는 클래스

- data용 : 정보를 담고 있음, 사람이나 사물의 정보를 저장하는 클래스

클래스 선언 방법

접근 제한자 class 클래스 명 {

         속성들 - 필드
         기능들(main()) - 메서드

}

클래스 구성

- 필드(인스턴스 멤버, 멤버 변수)

- 메서드(인스턴스 메서드)

- 생성자

필드와 메서드 선언

public class Car{//클래스 선언
	String carName; //필드 선언
    
    public void go(){ //메서드 선언
    	System.out.println(carNmae + "출발합니다.");
    }
}

 

         Car.java 

- 리턴 값이 있는 경우 : 리턴 값의 자료형을 작성

- 리턴 값이 없는 경우 : void로 작성

필드와 메서드 사용

public class EX{
    Car car = new Car();//클래스를 이용해 객체 생성
    car.carName = "소나타";//초기화(객체명.필드명)
    car.go();//메서드 사용
}

EX.java

Car 변수명 = new Car(); 이렇게 2번째 줄 처럼

클래스를 이용해 객체 선언하는 것을 클래스의 객체화/ 인스턴스화라고 한다.

객체화는 공간을 생성해 참조값(공간의 위치)을 변수명에 저장한다. 

인스턴스 : 클래스의 위치(참조값)를 지니는 변수, 객체명(car)

 

정적 멤버

- 선언 시 static키위드가 붙은 멤버들

- 생성된 모든 객체에서 접근이 가능하다. (객체 생성 개수를 카운트할 수 있음)

- 따로 객체를 생성하지 않고도 사용이 가능하다.

- static을 사용해 선언한 경우 호출 시에 인스턴스 명이 아닌 클래스 명으로 호출한다.

public class Student{
	static String school = "자바고등학교";
}

public class exam{
	public static void main(String[] args){
    	System.out.println(Student.school); // 객체화 필요없이 호출 가능
    }
}

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함