티스토리 뷰
출처:
Java - 클래스와인스턴스그리고객체지향 (2/5) : 객체지향이전의 코딩 2
클래스(Class): 객체를 만들기 위한 설계도 (정의)
인스턴스(Instance): 설계도에 따라 만들어진 구체적인 제품 (호출)
// 1번 코드
class CalculatorDemo {
public static void main(String[] args) {
// 아래 로직이 1000줄 짜리의 복잡한 로직이라고 생각해보자.
System.out.println(10+20); // 중복 1
System.out.println(20+40); // 중복 2
}
}
프로그래밍 언어에서 중요한 것
- 중복의 제거
- java에서 중복을 없애는 가장 대표적인 방법: Method
// 2번
class CalculatorDemo2 {
public static void main(String[] args) {
sum(10, 20);
sum(20, 40);
}
public static void sum(int left, int right) {
System.out.println(left + right);
}
}
1번과 같은 의미를 갖고 있지만, 중복을 제거하였음. 이를 refactoring이라고 함.
// 3번
class calculatorDemo3 {
public static void main(String[] args) {
int left, right;
left = 10;
right = 30;
System.out.println(sum(left, right));
System.out.println(avg(left, right));
left = 40;
right = 60;
System.out.println(sum(left, right));
System.out.println(avg(left, right));
}
public static int sum(int left, int right) {
return left + right;
}
public static int avg(int left, int right) {
int a = sum(left, right)/2;
return a;
}
}
더욱이 다른 기능을 담당하는 method가 있다면, 처음에 만들었던 sum method의 기능을 최대한 활용하면서 코드를 짤수도 있음.
즉 서로 연관되어 있는 기능이나 연산을 그룹핑해서 코드를 작성하는 것이 바로 객체지향 프로그래밍임.
⭐️ 객체화 ⭐️
// 계산이라는 것에 초점을 맞추고 기능을 모아 둔 Class
class Calculator {
int left, right;
public void setOprands(int left, int right) {
this.left = left;
this.right = right;
}
public void sum() {
System.out.println(this.left + this.right);
}
public void avg() {
System.out.println((this.left + this.right)/2);
}
}
// 실제로 계산을 활용하는 부분
public class calculatorDemo4 {
public static void main(String[] args) {
Calculator c1 = new Calculator(); // 설계도를 반영한 또는 호출한 것
c1.setOprands(100, 200);
c1.sum();
c1.avg();
Calculator c2 = new Calculator();
c2.setOprands(150, 300);
c2.sum();
c2.avg();
}
}
- c1은 Calculator를 담을 수 있는 컨테이너이다
'Spring > Java' 카테고리의 다른 글
[Java] 초기화와 생성자 (0) | 2021.12.02 |
---|---|
[Java] 유효범위 (0) | 2021.12.02 |
[Java] 클래스 맴버와 인스턴스 맴버 (0) | 2021.12.02 |
[Java] 객체와 객체지향 프로그래밍 (0) | 2021.11.29 |
[Java] Java의 입력과 출력 간단 정리 (0) | 2021.11.29 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 추가합격후기
- 싸피5기
- 백준
- 알고리즘
- 안드로이드 #안드로이드스튜디오 #Kotlin #앱개발 #안드로이드기초 #비전공개발자 #풀스택개발자 #앱개발자
- 앱개발
- 보조생성자
- DP
- 프로젝트구조
- 백준알고리즘 #BFS #델타이동 #알고리즘풀이 #개발 #안전영역 #풀스택개발자가되고싶습니다. #노력할래요 # 꾸준히 # 화이팅! #비전공개발자
- Java
- 기본생성자
- 백준 #숨박꼭질3 #다익스트라 #알고리즘 #비전공개발자 #풀스택 #웹개발 #앱개발 #안드로이드 #python
- 참조연산자
- Java #객체지향 #상속 #생성자 #개념 #비전공개발자 #FullStack을 #향해
- 프로그래머스
- 일반파라미터
- 구간 합 구하기 4
- 비전공싸피합격
- 생성자
- Kotlin
- 코틀린
- Programmers #알고리즘 #Python #KAKAOINTERNSHIP #비전공개발자 #불량사용자
- Class
- 비전공개발자
- 안드로이드
- 중첩클래스와 내부클래스
- kotlin문법
- Python
- 카카오
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
글 보관함