* 객체지향프로그램 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 |