728x90
※객체지향 프로그래밍 특징
- 효과적 프로그램 운영 : 객체를 사용하여 데이터 값과 그에 따르는 동작들을 모두 밀착하여 포함하므로 대규모 프로젝트 개발에 유연성있게 접근 할 수 있음
- 캡슐화 : 유효한 메시지만을 객체에 접근하도록 함으로써 정보은닉을 제공
- 상속 : 기존의 클래스가 갖고 있는 속성과 메소드 정보를 모두 새로운 클래스에게 할당할 수 있는 기능으로 프로그램의 재사용성을 높임
- 다형성 : 동일한 메소드 일지라도 매개변수의 유형이나 개수에 의해 다르게 동작할 수 있는 성격을 의미
※ 구조체 vs 클래스
- 구조체는 프로그램의 재사용성이 거의 없으며, 프로그램 코드길이가 길어지는 문제점 발생
- 단순한 데이터의 입력을 할때는 구조체가 좋음
- 클래스는 메서드와 변수를 한꺼번에 정의
※클래스의 구성
- 클래스로부터 객체를 생성하여 데이터속성과 프로시저 모두를 참조하며 한 클래스로부터 여러 개의 객체를 생성
- 객체는 필드와 메서드로 구성되어있음
- 필드는 객체를 구성하는 데이터 항목
- 메서드는 해당 객체가 수행해야 하는 특정한 동작
class Mycoffee { //클래스안에 멤버와 동작을 모두 기술함
String irum;
int price;
void prn_info(String irum,int price){
System.out.printIn("입력한 커피="+irum);
System.out.printIn("가격="+price);
}
}
public class classsample {
public static void main(String[] args) {
Mycoffee my1=new Mycoffee();
my1.prn_info("예가체프",5500); //객체 my1을 생성하여 해당 메서드에 접근
}
}
결과는 아래와 같음)
입력한 커피=예가체프
가격=5500
※ 클래스의 형식
[접근한정자] class 클래스명 {
[접근한정자] <데이터타입> 변수명;
[접근한정자] <리턴타입> 메서드명(인수명) {...}
}
※ 접근한정자의 종류
Public
|
모든 코드에서 사용
|
Private
|
클래스가 다른 클래스나 모듈 내부에 정의될 때 사용 (선언된 클래스내부, 모듈내부에서만 사용)
|
Protected
|
클래스를 정의하는 클래스와 해당 클래스로부터 파생된 클래스(자식 클래스)에서만 사용가능
|
없음
|
같은 패키지 내에서만 참조가능
|
※ 객체의 생성
- 클래스는 객체를 생성 함으로써 사용할 수 있음
- 클래스의 객체를 생성하기 위해서는 new 키워드 사용
- 객체는 클래스를 참조하는 것이므로 명시적으로 생성되어야함
※ 객체의 구조
클래스명 객체명 = new 클래스명;
객체명.필드명;
객체명.메서드명(인수);
ex)
package pkg_in;
import java.util.Date;
class Goods {
//필드선언
String irum;
String import_date;
//메서드
void info_goods(){
System.out.printIn("입고상품명:"+irum);
System.out.printIn("입고일자:"+import_date);
}
}
public class classsample {
public static void main(String[] args) {
Date today=new Date();
Goods my_goods=new Goods();
my_goods.irum="썬블록 uv30f";
my_goods.import_date=today.toString(); //날짜를 문자열로 출력
my_goods.info_goods();
}
}
결과는 아래와 같음)
입고상품명:썬블록 uv30f
입고일자:Thu Jul 20 13:50:02 KST 2018
반응형
'공부 > java' 카테고리의 다른 글
java 상속 (0) | 2023.01.11 |
---|---|
java 배열코딩(array) : 1차원 배열과 2차원 배열 (0) | 2023.01.10 |
java 반복문 : while문, do ~ while문 (0) | 2023.01.10 |
java 반복문 : for문, 확장 for문 (0) | 2023.01.10 |
java 조건제어 if문, switch문 (0) | 2023.01.10 |