본문 바로가기

공부/java

java 클래스와 객체 코딩

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