객체지향 프로그래밍(Object Oriented Programming)
- 프로그래밍을 단순히 코드의 연속으로 보는 것이 아닌 객체간의 상호작용으로 보는 것
- 코드의 재사용성이 높고 유지보수가 용이하다.
변수를 가지고 할 일
//SampleClass라는 클래스에 변수, 메서드 생성
public class SampleClass {
public static void main(String[] args) {
int local = 10; //지역변수
}
int field; //전역변수
void method1(){ //메서드
System.out.println("파라미터도 리턴타입도 없는 메서드");
return;//메서드를 종료시킨다.
}
String method2(int parameter){
return parameter + " 를 받아 명령을 수행하고 결과물을 리턴하는 메서드";
//parameter가 int타입이지만 문자열과 더해져서 결과는 문자열 타입이다.
}
}
//새로운 OPP라는 클래스에서 SampleClass에서 만든 변수와 메서드 사용
public static void main(String[] args) {
SampleClass sc = new SampleClass();
//객체생성, 메모리에 올라가고 저장된 주소를 반환한다.
System.out.println(sc.field); // 0 출력 : 전역변수는 기본값이 출력
sc.method1(); //파라미터도 리턴타입도 없는 메서드 출력
String returnValue = sc.method2(5);
System.out.println(returnValue);
//5 를 받아 명령을 수행하고 결과물을 리턴하는 메서드 출력
}
//출력 순서 입력해보기
public class SampleClass {
void flowTest1(){
System.out.println("flowTest1 시작 : 1");
flowTest3();
System.out.println("flowTest1 종료 : 6");
}
void flowTest2(){
System.out.println("flowTest2 시작 : 3");
System.out.println("flowTest2 종료 : 4");
}
void flowTest3(){
System.out.println("flowTest3 시작 : 2");
flowTest2();
System.out.println("flowTest3 종료 : 5");
}
}
public static void main(String[] args) {
sc.flowTest1();
/* 출력
* flowTest1 시작 : 1
* flowTest3 시작 : 2
* flowTest2 시작 : 3
* flowTest2 종료 : 4
* flowTest3 종료 : 5
* flowTest1 종료 : 6
*/
}
//계산기 프로그램을 만들어보시오
//1. 123456 + 654321
//2. 1번의 결과값 * 123456
//3. 2번의 결과값 / 123456
//4. 3번의 결과값 - 654321
//5. 4번의 결과값 % 123456
public class Calculator {
double add(double a, double b){
return a + b;
}
double subtract(double a, double b){
return a - b;
}
double multi(double a, double b){
return a * b;
}
double divied(double a, double b){
return a / b;
}
double mod(double a, double b){
return a % b;
}
}
public static void main(String[] args) {
Calculator cal = new Calculator();
double result = cal.add(123456, 654321);
result = cal.multi(result, 123456);
result = cal.divied(result, 123456);
result = cal.subtract(result, 654321);
result = cal.mod(result,123456);
System.out.println(result);//0.0 출력
}