Object Oriented Programming

ZiSoOm·2021년 5월 30일
0

기초자바

목록 보기
12/15

💊객체지향 프로그래밍

  • 프로그래밍을 단순히 코드의 연속으로 보는 것이 아니라 객체 간의 상호작용으로 보는 것
  • 코드의 재사용성이 높고 유지보수가 용이함

연습


💊SampleClass 클래스

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");
	}
}

💊Calculator 클래스

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;
		}

}

💊OOP 클래스

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 : 값을 반환해주는 역할, 메서드를 종료시키는 역할을 함
}

0개의 댓글

관련 채용 정보