[01] OOP(Object Oriented Programming, 객체지향 프로그래밍)
1. 객체 지향(콤포넌트, 부품)의 특징
- 한번 개발자가 개발한 코드는 "적은 수정"으로 재사용이 가능하도록함.
- 콤포넌트(완성된 소스)가 다른 콤포넌트와 결합하여 하나의 프로그램을 형성합니다.
. A 프로그램 --> 모듈 --> 출력 --> 처리 종류
. B 프로그램 --> 모듈 --> 출력 --> 처리 종류
│
↓
(공통모듈)
. A 프로그램 --> 콤포넌트 <-- b="" p=""> 워드 패드 --> 파일 열기 <-- p=""> -->-->
- OOP의 개념을 바탕으로 업무용 프로그램을 제작하면 관리비용이 절감될 수 있다.
Project type: Java Project
name: oop
[02] 메소드
- 메소드(함수)는 멤버 변수(데이터)를 조작하고 처리하는 역활을 합니다.
- 2번이상 호출되는 로직이나 향후 호출될 가능성이 있는 로직은
메소드의 대상이 됩니다.
- 리턴값이 없는 메소드는 void(공허한, 비어있는) 형을 지정합니다.
- 메소드가 받는 인수의 데이터 타입은 메소드를 호출하는 쪽과
일치해야 합니다.
1. 하나의 클래스에서 필드(변수)의 출력
[실행 화면]
객제지향
웹프로그램
개발프레임워크
>>>>> FieldTest.java
---------------------------------------------------------------------------------------
public class FieldTest {
String java = "객체 지향";
String jsp = "웹 프로그램";
String spring = "개발 프레임워크(자동화 소스)";
public static void main(String[] args) {
FieldTest ft = new FieldTest();
// ft: 객체명, new: 메모리 할당
System.out.println(ft.java);
System.out.println(ft.jsp);
System.out.println(ft.spring);
String summer="동해";
System.out.println("summer: " + summer);
}
}
---------------------------------------------------------------------------------------
2. 하나의 클래스에서 메소드 호출
- public void print(){ ... } : 출력 메소드
- public void line(){ ... } : 라인 출력 메소드
[실행 화면]
──────────
* 국어: 80
* 영어: 90
* 총점: 170
* 평균: 85
──────────
* 국어: 95
* 영어: 100
* 총점: 195
* 평균: 97
──────────
* 국어: 60
* 영어: 70
* 총점: 130
* 평균: 65
──────────
>>>>> /src/Sungjuk1.java
---------------------------------------------------------------------------------------
public class Sungjuk1 {
int kuk = 80; // 필드, 멤버 변수, 인스턴스 변수
int eng = 90;
int tot = 0;
int avg = 0;
public void print(){ // 메소드
tot = kuk + eng;
avg = tot / 2;
System.out.println("* 국어: " + kuk);
System.out.println("* 영어: " + eng);
System.out.println("* 총점: " + tot);
System.out.println("* 평균: " + avg);
}
public void line(){
System.out.println("──────────");
}
public static void main(String[] args) {
Sungjuk1 sj = new Sungjuk1();
sj.line();
sj.print();
sj.line();
sj.kuk = 95;
sj.eng = 100;
sj.print();
sj.line();
sj.kuk = 60;
sj.eng = 70;
sj.print();
sj.line();
}
}
---------------------------------------------------------------------------------------
3. 변수의 사용
- public void total(){ ... }
- public void point(){ ... }
- public void print(){ ... }
- public void line(){ ... }
[실행 화면]
영화명: Gravity <- p="" print="">성 인: 8000->
학 생: 6000
합 계: 14000 <- p="" total="">포인트: 700 <- 5="" p="" point="">->->
>>>>> Movie.java
public class Movie {
String movie = "그래비"; // 필드
int price1 = 10000;
int price2 = 8000;
int tot = 0;
int point = 0;
public void total(){ // 합계 메소드
tot = price1 + price2;
}
public void point(){ // 포인트 메소드
point = (int)(tot * 0.05);
}
public void print(){ // 인쇄, 다른 메소드 호출 가능
System.out.println("영화명: " + movie);
System.out.println("성 인: " + price1);
System.out.println("학 생: " + price2);
total();
System.out.println("합 계: " + tot);
point();
System.out.println("포인트: " + point);
}
public static void main(String[] args) {
Movie movie = new Movie();
movie.print();
}
}
[03] 메소드로 데이터의 전달
- 메소드가 실행될 때 처리할 데이터를 전달 받을 수 있습니다.
1. 메소드가 데이터를 전달받아 출력하는 메소드
- public void print(String str){ ... }
[실행 화면]
1. 자바 개발자 과정
2. A
3. 1000
4. 10.5
5. false
>>>>> /src/TransferTest.java
public class TransferTest {
public void printStr(String str){ // Call By value
System.out.println("1. " + str);
}
public void printChar(char chr){
System.out.println("2. " + chr);
}
public void printInt(int i){
System.out.println("3. " + i);
}
public void printDouble(double d){
System.out.println("4. " + d);
}
public void printBoolean(boolean bol){
System.out.println("5. " + bol);
}
public static void main(String[] args) {
TransferTest tt = new TransferTest();
tt.printStr("자바 개발자 과정");
tt.printChar('A');
tt.printInt(1000);
tt.printDouble(10.5);
tt.printBoolean(false);
}
}
2. 메소드가 두개 이상의 데이터를 전달받아 출력하는 메소드
- public void print(String str, int kuk){ ... }
[실행 화면]
자바 개발자 과정 A
자바 개발자 과정 A 1000
자바 개발자 과정 A 1000 10.5
자바 개발자 과정 A 1000 10.5 false
>>>>> /src/TransferTest2.java
public class TransferTest2 {
public void print(String str, char chr){
System.out.println(str + " " + chr);
}
public void print(String str, char chr, int i){
System.out.println(str + " " + chr + " " + i);
}
public void print(String str, char chr, int i, double d){
System.out.println(str + " " + chr + " " + i + " " + d);
}
public void print(String str, char chr, int i, double d, boolean bol){
System.out.println(str + " " + chr + " " + i + " " + d + " " + bol);
}
public static void main(String[] args) {
TransferTest2 tt = new TransferTest2();
tt.print("자바 개발자 과정");
tt.print("자바 개발자 과정", 'A');
tt.print("자바 개발자 과정", 'A', 1000);
tt.print("자바 개발자 과정", 'A', 1000, 10.5);
tt.print("자바 개발자 과정", 'A', 1000, 10.5, false);
}
}
[04] 콤포넌트 클래스의 분리
- 자바는 기본적으로 클래스 분리 개발 및 실행 환경을 제공함.
1. 프로젝트를 새로 만들고 클래스를 분리하세요.
Project type: Java Project
name: oop2
출처 : https://junghamin.blogspot.kr
댓글 없음:
댓글 쓰기