2022.11.14 JAVA 13일차 객체지향언어
2022. 11. 22. 08:44ㆍJAVA
객체지향언어
프로그램을 객체 단위로 나누어서 객체를 중심으로 프로그램을 구성하는 언어
객체단위로 구현하며 예를 들면 사람,동물,자동차 등... 단위
로 구현
특징 : 캡슐화, 다형성, 상속성
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)로
가장 나중에 넣은 데이터를 가장 먼저 꺼내는 구조
참조형 데이터를 매개변수,리턴값으로 사용할 시
변수의 값 (참조형변수의 값은 주소값) 이 이동한다.

'JAVA' 카테고리의 다른 글
| JAVA 응용문제 이중배열 정렬 (0) | 2022.11.22 |
|---|---|
| 2022.11.15 JAVA 14일차 오버로딩 (0) | 2022.11.22 |
| 2022.11.11 JAVA 12일차 클래스와 객체 (0) | 2022.11.21 |
| 2022.11.10 JAVA 11일차 String클래스, 이중배열 (0) | 2022.11.21 |
| 2022.11.09 Java 10일차 배열복사 (0) | 2022.11.21 |