본문 바로가기

객체지향6

[TIL] 2022-11-22(17day) 상속, 인터페이스, 추상 클래스를 각각 어떤 상황에서 사용해야하는지 잘 와닿지 않습니다. 특히 인터페이스는 자바에만 있는 기능인 것으로 압니다. 실제 프로그래밍 할 때는 Animal 클래스와 같이 명확한 상황이 거의 없는데 어떻게 적용해야할지 너무 모호합니다. 추상클래스, ⇒ 템플릿메소드 패턴 event-us?? ⇒ 참가자(참가코드, 인증방식). ⇒ 비회원참가자(이메일, 닉네임, 핸드폰), 회원참가자(이메일) 캐스팅할때 정확히 어떤차이인지 알고싶습니다. Animal animal = new Animal과 Cat animal = new Animal과 Animal animal = new Cat의 차이가 정확히 뭔지 알고싶습니다. 업케스팅 사용시 반드시 업케스팅을 써야만 하는 상황에 대해 적절한 예시가 있을까요.. 2022. 11. 22.
[TIL] 2022-11-21(16day) 👉 객체지향 프로그래밍 - 객체 지향 프로그래밍(영어: Object-Oriented Programming, OOP)은 컴퓨터 프로그래밍의 패러다임 중 하나이다. 객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있다. 객체 지향 프로그래밍은 프로그램을 유연하고 변경이 쉽게 만들기 때문에 대규모 소프트웨어 개발에 많이 사용된다. 또한 프로그래밍을 더 배우기 쉽게 하고 소프트웨어 개발과 보수를 간편하게 하며, 보다 직관적인 코드 분석을 가능하게 하는 장점이 있다. 그러나 지나친 프로그램의 객체화 경향은 실제 세계의 모습을 그대로 반영하지 못한다는 비판.. 2022. 11. 21.
[TIL] 2022-11-18(15day) 👉 계산기 만들기 1. class 이름 Calculator class Calculator { int value; Calculator() { this.value = 0; } void add(int val) { this.value += val; } int getValue() { return this.value; } } public class Sample { public static void main(String[] args) { Calculator cal = new Calculator(); cal.add(10); System.out.println(cal.getValue()); } } a. 요구사항 - 위 Calculator 클래스를 상속하는 UpgradeCalculator를 만든다. - 뺴기기능 구현, 메서.. 2022. 11. 18.
[TIL] 2022-11-17(14day) 👉 객체 지향 코드 재사용성이 높다 : API 사용 코드 관리가 쉽다 : 상속, 다향성, 추상화. 캡슐화 신뢰성이 높은 프로그램 개발 가능 -1) 캡슐화 (encapsulation) : 자바가 지향하는 코드 스타일 # 데이터와 관련 기능을 묶는다. # 객체가 어떻게 행동(기능)하는지 외부에 노출하지 않는다. # 정보 은닉 # 객체 내부 행동(기능)이 변경 되더라도, 외부에 영향을 주지 않는다. -2) 상속 (inheritance) -3) 다형성 (polymorphism) # 다양한 모습을 갖는 것 # 한 객체가 다양한 타입을 갖는 것 # 한 객체가 여러 타입의 기능을 제공 # 타입 상속으로 다형성 구현 (상속관계에서 성립) # 같은 이름의 기능이 클래스나 객체에 따라 다르게 동작하도록 구현되는 것. 👉 .. 2022. 11. 17.
[TIL] 2022-11-08(7day) JAVA 기초문법(2) 👉 조건문 switch 다중 선택문 : 하나의 변수값을 평가하여, 각 값에 대해 개별적인 처리를 하는 문장. -1) 구조 char score = 'A'; switch (score){ case 'A': System.out.println("A등급입니다."); // 값1과 변수의 값이 동일한 경우 아래 샐행문들 실행~ break; // 위 실행문들을 실행하고 switch 강제종료!! case 'B': System.out.println("B등급입니다."); // 실행문들~ break; case 'C': System.out.println("C등급입니다."); // 실행문들~ break; default: System.out.println("낙제입니다."); // 실행문들~ 마지막 break는.. 2022. 11. 8.
[TIL] 2022-11-07(6day) JAVA 기초문법(1) 👉 프로그램 기본지식 사항 ex) System.out.println("hello!"); .(점) : "가지고 있는~~" ;(세미콜론) : 하나의 명령이 종료되었다는 표시. {} 중괄호 : 영역 👉 자바란? -1) 프로그래밍 언어 소스코드 -> 컴파일러 -> 실행파일 -> JVM .class 파일 실행 **.java **.class -2) 자바 절차지향 : C (순서대로) - 속도가 빠름/ 메모리적음 (임베디드) 객체지향 : Java, C++ (모듈화) - 유지보수 쉬움 -3) 자바의 특징 플랫폼 독립성(jvm을 통해 os 상관없이 실행) 👉 객체지향 멀티스레드 : 동시에 일 처리 가비지컬렉션 : 자바는 메모리 할당기능은 있지만, 반환(해제)기능은 없다. 자바 가상 기계의 가비지 컬.. 2022. 11. 7.