2022.11.14 JAVA 13일차 객체지향언어

2022. 11. 22. 08:44JAVA

객체지향언어

프로그램을 객체 단위로 나누어서 객체를 중심으로 프로그램을 구성하는 언어
객체단위로 구현하며 예를 들면 사람,동물,자동차 등... 단위

로 구현

특징 : 캡슐화, 다형성, 상속성
1. 코드의 재사용성 : 기존 코드를 이용하여 쉽게 작성 , 상속성
2. 코드의 관리 용이 : 코드간의 관계를 이용하여 쉽게 코드 변경 다형성과 메소드의 오버로딩
3.신뢰성이 높은 프로그래밍 가능 : 데이터 보호하고 올바른 값 유지 캡슐화와 데이터 은닉화

장점: 코드의 재사용성이 높고 유지보수가 용이함

메서드
특정 작업을 수행하는 일련의 문장들을 하나로 묶은것을 의미함

메서드 사용이유
1. 높은 재사용성
2. 중복된 코드제거
3. 프로그램의 구조화

반환타입 메서드이름(타입 변수명, 타입 변수명,.....){
}

int add(int a, int b) //선언부
{
int result = a+b; //구현부
return result;

 

class Math1 {
	// 클래스변수, 인스턴스변수
	int add(int a, int b) // 인스턴스 메서드
	{
		System.out.println("add 메서드 시작 : a = " + a + ", b = " + b);
		a = a + 10;
		b = b + 10;
		int result = a + b;

		System.out.println("add 메서드 끝 : a = " + a + ", b = " + b);

		return result;
	}

}

class Math2 {
	static int a;
	static int b;

	int add() {

		return a + b;
	}

	int subtrace() {

		if (a < b) {
			return b - a;
		}

		return a - b;
	}

	int multiply() {
		return a * b;
	}

	double divide() {

		if (a < b) {
			return (double) b / a;
		}

		return (double) a / b;
	}
}

public class MySample1114 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		// 객체지향 프로그램 - 메서드
		Math1 ma = new Math1();
        /*
		 * 두 정수를 입력받아 더하기, 빼기, 곱하기, 나누기 연산 결과 출력 입력예) 두 정수 입력> 5 3 실행예) add(a, b) = 8
		 * subtrace(a,b) = 2 multiply(a,b) = 15 divide(a,b) = 1.666666667 단, divide메서드는
		 * result 타입은 double 빼기와 나누기는 큰수에서 작은수를 빼거나 나누게 처리함. 계산기 클래스는 Math2
		 */

		Math2 ma2 = new Math2();

		System.out.print("두 정수 입력>");
		Math2.a = sc.nextInt();

		Math2.b = sc.nextInt();

		System.out.println("add : " + ma2.add());

		System.out.println("subtrace : " + ma2.subtrace());

		System.out.println("multiply : " + ma2.multiply());

		System.out.printf("divide : %.15f", ma2.divide());
        }
 }

출력

 


스택

데이터를 일시적으로 저장하기 위해 사용하는 자료구조로, 데이터의 입력과 출력순서는 후입선출(LIFO,Last In First Out)로
가장 나중에 넣은 데이터를 가장 먼저 꺼내는 구조

참조형 데이터를 매개변수,리턴값으로 사용할 시 
변수의 값 (참조형변수의 값은 주소값) 이 이동한다.