- 프로그래밍을 단순히 코드의 연속으로 보는 것이 아니라 객체 간의 상호작용으로 보는 것
- 코드의 재사용성이 높고 유지보수가 용이함
연습
package oop; public class SampleClass { public static void main(String[] args) { int local = 10; //지역변수 : 메서드 안에서만 사용하는 변수 } int field; //전역변수 : 클래스 전체 영역에서 사용하는 변수 //전역변수는 초기화를 하지 않아도 자동으로 기본값으로 초기화 됨 /* * char : '' * boolean : false * 참조형 타입 : null * 그외 : 0 */ /* * 메서드 : 변수를 가지고 할 일 * 선언 방법 : 리턴 타입 메서드명 (파라미터) {} * 파라미터(매개변수) : 실행에 필요한 정보 * 리턴타입(반환타입) : 실행 후 돌려줘야하는 결과물 */ String method1(int parameter) { return parameter + "를 받아 명령을 수행하고 결과물을 리턴하는 메서드"; //뒤에 문자열을 붙여주어 return타입과 일치하는 String이 됨 } void method2() { System.out.println("파라미터도 리턴타입도 없는 메서드"); //void : 비어있다는 의미, return 타입이 없을 때는 void를 써줌 (return 안해줘도 됨) } //flowTest1()호출 시 출력되는 문장에 출력 순서대로 번호를 붙여주세요. 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"); } }
package oop; public class Calculator { //파라미터 2개 받아서 리턴해주는 메서드 5개있으면 됨 //더하기 double add (double a, double b){ return a + b; } //빼기 double subtract (double a, double b){ return a - b; } //곱하기 double multiply (double a, double b){ return a * b; } //나누기 double divide (double a, double b){ return a / b; } //나머지 double mod (double a, double b){ return a % b; } }
package oop; public class OOP { public static void main(String[] args) { //객체 생성 => SampleClass의 내용이 메모리에 올라감 //변수 sc에 클래스 주소 저장 SampleClass sc = new SampleClass(); System.out.println(sc.field); String returnValue = sc.method1(5); System.out.println(returnValue); //결과 : 5를 받아 명령을 수행하고 결과물을 리턴하는 메서드 sc.method2(); //결과 : 파라미터도 리턴타입도 없는 메서드 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 Calculator cal = new Calculator(); double result = cal.add(123456, 654321); result = cal.multiply(result, 123456); result = cal.divide(result, 123456); result = cal.subtract(result, 654321); result = cal.mod(result, 123456); System.out.println(result); //결과 : 0.0 } }
package oop; public class ClassMaker { //전역변수 하나를 선언 및 초기화 해 주세요. String a = "abc"; //리턴 타입과 파라미터가 없는 메서드 하나를 만들어주세요. //메서드 안에서 전역변수를 출력해 주세요. void a() { System.out.println(a); } //전역 변수와 동일한 타입의 리턴 타입이 있고 파라미터는 없는 메서드 하나를 만들어주세요. //메서드 안에서 전역변수를 리턴해주세요. String b() { return a; } //리턴타입은 없고 파라미터가 있는 메서드 하나를 만들어주세요. //메서드 안에서 파라미터를 출력해주세요. void c(int b) { System.out.println(b); return; //void라서 값을 반환하지는 않고, 메서드를 종료시키는 역할만 함 } //int 타입의 리턴타입과 int타입의 파라미터 두개가 있는 메서드 하나를 만들어주세요. //메서드 안에서 두 파라미터를 곱한 결과를 리턴해주세요. int d(int a, int b) { return a * b; } //return : 값을 반환해주는 역할, 메서드를 종료시키는 역할을 함 }