Language 38

객체지향 프로그램(OOP)의 특성

"객체지향"으로 넘어오면 "질문"이 바뀐다 이거 짝수야 3,6,9게임의 알고리즘 작성해줘 배열에 NUM가 있어? ▼▼ 자동차 코딩해줘 학생부 프로그램을 제작하고 싶어 학생 데이터 만들어줘 스마트폰 코딩해줘 객체지향 프로그램(OOP)의 특성 4가지 특성 추상화 캡슐화 상속 다형성 ✅ 1. 추상(설계가 중요) abstract class ex) "자동차" 코딩해줘 스포츠카: 속도,브레이크() 버스: 탑승인원, 요금정산() 차: 주유상태출력,벨트,네비게이션() > 어떻게 정의하냐에 따라 서로 다른 OUTPUT이 생성, 그래서 설계가 중요! ​ ✅ 2. 캡슐화(모듈화,컴포넌트화) 내부 구성성분을 몰라도, 효과를 알면 우리는 그냥 먹는다. 내부 로직코드를 정확히 몰라도 INPUT, OUTPUT 기능 활용하는 상황 ..

Language/JAVA 2023.05.26

[JAVA 기초 이론] MVC패턴

MVC MVC 템플릿을 제공하는 Spring 프레임워크 📌 MVC의 장점 유지보수 용이 모듈화를 강제해서 개발의 편의성 도모 ex) 레고-블록이 작을수록 다양한 output 프로젝트 코드가 '낮은 결합도'를 가짐 프로젝트 코드가 '높은 응집도'를 가짐 M V C Model View Controller 데이터(DB)와 연결 사용자가 보는 화면 V ↔ M 을 연결하는 파트 ✅ M ---- Model (모델) : 데이터(DB)와 관련된 로직을 담당하는 파트 DB에서 데이터를 다루는 방법에 대한 코딩 == SQL DB의 데이터 JAVA 환경 == JDBC, DAO CRUD 기능을 구현하는 파트(사용자에 제공할 서비스를 코딩) ✅ V ---- View (뷰) : 사용자가 보는 화면에 대한 모든것을 담당하는 파트 ..

Language/JAVA 2023.05.24

[JAVA 기초 이론] 집합: Set

✅ set순서가 없다 ( index X )중복 허용 X다양한 자료형 저장 가능HashSet data = new HashSet(); 📍 set 특성데이터를 비순차적으로 저장insert한 데이터가 순서대로 저장되지 않음중복해서 삽입 불가능 ✅ 제네릭 HashSet data = new HashSet(); 제네릭을 사용하여 같은 자료형만 허용 ex)package class01;import java.util.HashSet;import java.util.Set;public class Test02 { public static void main(String[] args) { // 추상클래스 Set // Set류의 부모클래스 HashSet data=new HashSet(); // 집합(..

Language/JAVA 2023.05.22

[JAVA 기초 이론] 스레드 Thread

스레드 프로그램 실행의 기본 단위로, 하나의 프로세스 내에서 독립적으로 실행될 수 있는 흐름 프로세스 내에서 각각의 독립적인 작업을 수행하며, 여러 스레드가 동시에 실행 여러 작업을 병렬로 실행하거나, 프로그램의 반응성을 높이는 등의 다양한 목적으로 활용 이미 JAVA에서 구현한 Thread 클래스를 가져다가 사용 📍 스레드 생명주기 스레드 객체가 생성이 되면, 즉시 대기 → 수행 → 데드 ex) Th01 t1 = new Th01(); → 대기 → start() ... run() → 데드 start() 스레드 객체야, 일해! -> run()메서드를 실행시켜 수행하게 됨 📌 Thread 구현 방법 스레드 상속 class 클래스명 extends Thread{ @Override // run() 필수로 생성 :..

Language/JAVA 2023.05.22

[JAVA 기초 이론] 오버로딩 / 오버라이딩

오버로딩 오버라이딩 기존에 없던 새로운 메서드를 정의 상속받은 메서드의 내용만 변경 오버로딩 오버라이딩 매개변수 다름 동일 메서드 명 동일 동일 리턴값 다름 동일 ✅ 오버로딩 OverLoading 하나의 클래스에 같은 이름의 메소드를 여러 개 정의하여 구현 가능 메서드에 사용되는 이름을 절약 가능 📌 오버로딩 조건 한 클래스 내에서 메서드 명이 동일 매개변수의 개수 / 타입이 달라야함 매개변수는 같고 리턴타입이 다른 경우 오버로딩이 성립 x ex) class OverLoading { void print(int a){ System.out.println(a); } void print(String s){ System.out.println(s); } void print(int a, int b){ System.o..

Language/JAVA 2023.05.22

[JAVA 기초 이론] 예외처리 try / catch / finally

try - catch문 try - catch - finally문 try{ 예외가 발생되면, 즉시 catch문으로 이동 예외가 발생하지 않았다면, 아무일도 일어나지 않는다! // 결제코드(); // 잔액부족 한도초과 카드점검기간 카드단말기 } catch(예외클래스 e){ 해당 예외클래스의 문제가 발생되면, 이곳의 코드를 수행 // 결제된 곳까지의 돈을 다시 되돌려놓기 == rollback } finally{ 예외발생 여부와 무관하게 항상 수행되는 코드 // 통신을 위해 확보해둔 모든 연결스트림 해제 } ✅ 예외처리하면 좋은점 - 프로그램이 비정상적으로 종료되는 것을 막을 수 있음! - 예외가 발생되면서 커질 수 있는 피해들을 최소화 하는 것이 목표! package class01; import java.ut..

Language/JAVA 2023.05.21

[JAVA 기초 이론] 추상클래스 abstract

추상 클래스 abstract class 클래스명{ } 객체화 하는 것이 목표가 아니라 "설계를 하는 것이 목표였던 클래스들" => 클래스들의 기준이 되는 것이 목표 일반 클래스처럼 독립적으로 생성자를 호출해 객체를 생성할 수 없습니다. 자식 클래스의 생성자에서 super()를 통해 추상 클래스의 생성자를 호출하여 부모 객체를 생성한 후 자식 객체를 생성 합니다. ​ 추상 클래스는 직접 객체를 생성할 수 없습니다! ▲ 자식 클래스의 객체를 생성하고, 자식 클래스를 통해 추상 클래스의 메서드 호출이 가능합니다! ​ ✋ 추상클래스를 사용하는 이유 자식 클래스들이 공통적으로 가져야 하는 메서드를 가져야 할 때 부모 클래스의 객체를 생성할 일이 없을 때 ex) 추상클래스 기본예제 package test01; ab..

Language/JAVA 2023.05.19

[JAVA 기초 이론] 캡슐화 private / getter / setter

캡슐화 "민감한" 데이터를 사용자에게 비노출 캡슐화 장점 클래스 안 데이터의 직접 수정을 막고 메서드로만 변경 허용 1. 데이터 보호 2. 내부적으로만 작동하는 코드 숨김 캡슐화 방법 1. 클래스 안 속성(=변수)을 private으로 설정. ※ private 수정자 :동일 클래스에서만 접근 가능. 2. private 설정된 속성에 접근 방법 : public 설정된 get/set 메서드 통해서만 허용. 자바는 클래스 등을 생성할 때, 일반적으로 public을 디폴트 되어있다. public class Test{ String name; int age; } public 모든 곳에서 접근 가능 public class Test{ private String name; private int age; } private ..

Language/JAVA 2023.05.18

[JAVA 기초 이론] 상속 extends

상속 부모 클래스는 자식 클래스에게 상속을 해줄 수 있습니다. 자식 클래스는 부모 클래스를 선택해서, 그 부모의 멤버를 상속받아 그대로 쓸 수 있게 됩니다. // 상위 클래스 정의 class Animal { void sound() { System.out.println("Animal makes a sound"); } } // 상위 클래스를 확장한 하위 클래스 class Dog extends Animal { void sound() { System.out.println("Dog barks"); // 상위 클래스의 메서드를 재정의 } } ✋ 상속 사용하는 이유 ▶ 코드의 재사용성과 유지보수성을 높이는데 큰 역할 📌 상속 특징 재사용성 - 부모 클래스에서 정의된 속성과 메서드를 자식클래스에서 재사용 확장성 - 자..

Language/JAVA 2023.05.18

[JAVA 기초 이론] 멤버변수 static

static - 클래스 변수, 공유 자원 - 객체들 끼리 값 공유 class A{ int a; // 멤버변수, 필드, 속 //int b; // 인스턴스 변수 : 각각의 객체들이 고요한 값을 저장, 객체들끼리 값을 공유 x static int b; // 객체와 무관하게 // 클래스 변수, 공유 자원 //: 주인이 클래스라서 객체들끼리 값을 공유 o void printInfo(){ System.out.println("a="+this.a); System.out.println("b="+this.b); } } public class Test01 { public static void main(String[] args) { A a1=new A(); a1.a=10; a1.b=10; A a2=new A(); a2.a=1..

Language/JAVA 2023.05.18