* 객체지향프로그램 Object Oriented Program
  . 함수 기반에서는 구현하기 힘든 상속, 캡슐화, 다형성을 구현 할 수 있음.  
  . 클래스(Class: 멤버변수 Attribute + 멤버 메소드)    
  . 로직을 콤포넌트화해 재사용성 향상 및 빠른 유지보수를 가능하게 한다.
  . 메모리 관리를 가상 머신이 함으로 매우 안정적으로 운영됨(플랫폼이 독립)
  . Web & Window Application & Smart Phone Application 개발에 사용.   
  . 데이터베이스와 새로운 Internet환경 구축을 위한 다양한  API 지원(라이브러리)

 

* 객체의 구성
   멤버변수+멤버함수

 

* 객체(클래스) 작성
   접근제어자 class 클래스이름{
      멤버변수; //속성 property, Attribute(멤버 변수)
      멤버함수(){} //메소드 method
   }

   접근제어자: public, default, protected, private

 

* 객체 지향 프로그램의 개발 순서
   1) 객체 모델링(설계)
      . 작성 하려는 기능의 추상적인 기능 목록을 인터페이스로 선언.
      . 작성하려는 클래스의 속성과 메소드를 미리 문서나 툴등을 이용하여 나열 정리한다.
      . 클래스라는 형태로(멤버 변수의 선언, 메서드의 선언) 선언한다.

   2) Interface 정의
      . 기능을 구현하지 않은 추상 메소드의 집합.

   3) 클래스 정의
      . 멤버 변수 정의, 메소드 기능을 정의

   4) 객체 생성과 사용
      . 정의된 클래스를 이용해서, 메모리상에 객체를 만들고, 객체를 이용해서 프로그램 작성한다
      . 클래스 객체의 생성 - new를 통한 메모리 할당, 생성자를 호출

 

* 클래스의 선언

   - 클래스명은 첫자는 대문자로 시작하고 파일명은 클래스명과 대소문자도 일치

   - 하나의 클래스는 하나의 파일로 생성된다. Test.java --> Test.class

   - java 파일 하나 안에는 여러개의 클래스를 넣어둘수 있는데 이런경우 컴파일을하면
     자바 소스 파일은 하나이나 컴파일의 결과로 만들어지는 클래스는 2개이상이 된다.
  
     class Animal{

     }

 

     class Fruit{

     }

 

     public class Test{
         public static void main(String[] args) {}
     }

 

     Test.java --> Test.class, Fruit.class, Animal.class
  
   - 하나의 파일안에 클래스가 2개이상 있게되면 반드시 public 키워드로
     진입(메인, 시작)클래스를 명시해야 한다.
     이 클래스안에는 main()메소드를 정의해야 한다.-> 프로그램 시작   
   - 클래스가 2개이상 있는 경우의 파일명은 public이 명시된 클래스명으로 저장해야한다.

   - 하나의 파일안에 public 클래스는 하나만 있어야 한다.

 

 

파일명 : Sungjuk.java

package oop;

class SungjukIn{
    String name;
    int kor;
    int eng;
    int mat;
    int aver;
    int rank;
    //한사람에게 필요한 정보를 구조화 한다
}

public class Sungjuk {
    public static void main(String[] args) {
        SungjukIn who1=new SungjukIn();
        who1.name="무궁화";
        who1.kor=80;
        who1.eng=70;
        who1.mat=87;
        who1.aver=(who1.kor+who1.eng+who1.mat)/3;
        System.out.print(who1.name+" ");
        System.out.print(who1.kor+" ");
        System.out.print(who1.eng+" ");
        System.out.print(who1.mat+" ");
        System.out.print(who1.aver+" ");
        System.out.println();
       
        SungjukIn who2=new SungjukIn();
        who2.name="개나리";
        who2.kor=60;
        who2.eng=50;
        who2.mat=80;
        who2.aver=(who2.kor+who2.eng+who2.mat)/3;
        System.out.print(who2.name+" ");
        System.out.print(who2.kor+" ");
        System.out.print(who2.eng+" ");
        System.out.print(who2.mat+" ");
        System.out.print(who2.aver+" ");
        System.out.println();  
       
        SungjukIn who3=new SungjukIn();
        who3.name="진달래";
        who3.kor=20;
        who3.eng=30;
        who3.mat=40;
        who3.aver=(who3.kor+who3.eng+who3.mat)/3;
        
    }

}

'..열심히 공부하세.. > JAVA 문법' 카테고리의 다른 글

[메소드 연습]  (0) 2012.04.24
[14] 메소드(Method) 정의  (0) 2012.04.24
[요일구하는 프로그램]  (0) 2012.04.20
[12] 다차원배열  (0) 2012.04.20
[이클립스 설치]  (0) 2012.04.20

+ Recent posts