초록꼬마의 devlog
article thumbnail
[KH정보교육원] 13일차_다형성
back-end dev/Java 2021. 11. 7. 15:50

2021.10.28(목) 🌿 개념 '여러 개의 형태를 갖는다'는 의미 상속을 이용한 기술로, 부모 타입으로부터 파생된 여러 가지 타입의 자식 객체를 부모 클래스 타입 하나로 다룰 수 있는 기술 상위 타입으로 하위 타입의 객체를 사용할 수 있는 기술 🌱 Binding 다형성이 적용된 경우 메서드 오버라이딩이 되어 있으면, 정적으로 바인딩된 메서드 코드보다 오버라이딩된 메서드 코드를 우선적으로 수행 = 동적 바인딩 정적 바인딩 = 프로그램이 실행되기 전에 컴파일 되면서 모든 메서드는 정적 바인딩됨 동적 바인딩 = 컴파일 시 정적 바인딩된 메서드를 실행할 당시의 객체 타입을 기준으로 바인딩됨 🌱 활용 예시1) 상속 관계에 있는 하나의 부모 클래스 타입의 배열 공간에 여러 종류의 자식 클래스 객체를 저장할 수 ..

article thumbnail
[KH정보교육원] 12일차_상속
back-end dev/Java 2021. 11. 7. 15:49

2021.10.27(수) 🌿 개념 기존의 클래스(부모 클래스)를 재사용하여 새로운 클래스(자식 클래스)를 작성하는 것 기존 클래스를 확장/특화하는 것 → 자식 클래스 extends 부모 클래스 코드의 중복을 줄이고 프로그램의 확장성 향상 "자식 is-a 부모" 관계 클래스의 상속은 단일 상속만 가능 인터페이스 상속/구현은 다중 상속 가능 🌿 오버라이딩 부모 클래스로부터 상속받은 메서드의 몸체를 자식 클래스에서 재정의하는 것(o) 그대로 사용(x) 부모-자식 클래스에서 같은 이름의 메서드가 다른 기능을 수행하게 됨 접근 제어자의 가시성/접근 범위는 같거나 커져야 함 Overloading vs Overriding (메서드)Overloading = 한 클래스 내에서 같은 이름의 메서드를 여러 개 정의하는 것 ..

article thumbnail
[KH정보교육원] 11일차_클래스, 객체 배열
back-end dev/Java 2021. 11. 7. 15:48

2021.10.26(화) 🌿 클래스 MVC 패턴 = Model + View + Controller 기능에 따라 서브시스템들을 구분 = 도메인 지식 관리하는 Model + 사용자에게 보여주는 View + 사용자와의 상호작용 제어하는 Controller 🌱 생성자 표현법 목적/기능 → 객체 생성 시, 기본 생성자 사용해서 객체 생성 후 setter를 이용해서 필드값 초기화, 또는 객체 생성과 동시에 필드값을 초기화 public class User { /* User 클래스의 객체 생성: User go = new User(); * 객체 생성 시 new(새로 만든다)라는 키워드 뒤 '클래스명()' 이게 생성자(constructor) * * 대입연산자(=): 우항의 값을 좌항의 공간에 대입 -> User 클래스의 ..

article thumbnail
[KH정보교육원] 10일차_캡슐화, 클래스
back-end dev/Java 2021. 11. 7. 15:47

2021.10.25(월) 🌿 캡슐화 public class Run { /* 캡슐화 과정을 통해 완벽한 클래스의 형태를 갖추게 하자 * 캡슐화를 하지 않으면 외부로부터 직접 접근이 가능하기 때문에 함부로 값이 변질되거나 조회를 막지 못하는 문제가 발생 * cf. 정보 보안 3요소: 기밀성, 무결성, 가용성 * * 캡슐화 작업 = 정보 은닉 기술 중 하나; 정보 보안의 기밀성과 무결성을 지킬 수 있게 함; 캡슐 안에 숨기는 것 -> 데이터의 접근 제한( 외부에서 접근할 수 없도록) * 1. 값 숨기기: 멤버변수의 접근제한자 public 대신 private으로 바꿔서/사용해서 외부(다른 패키지)에서의 접근을 막음 * 2. 클래스 외부에서 간접적으로 값을 처리할 수 있는 메소드(getter(값 가져오기), se..

article thumbnail
[KH정보교육원] 9일차_배열 복사, 객체
back-end dev/Java 2021. 11. 7. 15:44

2021.10.22(금) 🌿 배열 🌱 배열 복사 ✔️ 얕은 복사 = 배열의 주소 값만 복사 → 참조 대상(배열의 내용물)은 동일한 것을 가리키고 있음 ✔️ 깊은 복사 = 동일한 새로운 배열을 하나 생성해서 실제 내부값까지 복사 방법1) 반복문 방법2) System.arraycopy() 메서드 사용 방법3) Arrays.copyOf() 메서드 사용 방법4) clone() 메서드 사용 비둘기집 원리 = hashcodes가 같다고 해서 둘이 같다고 할 수는 없으나, hashcodes가 다르면 둘은 다름 🌿 객체 - Java는 객체(object) 지향(프로그래밍 방법 중의 하나)을 지원하는 프로그래밍 언어 - 객체 = 실제로 존재하는 것(사물 또는 개념) → 객체 지향 이론 = 실제 세계는 사물/객체로 이루어져..

article thumbnail
[KH정보교육원] 8일차_배열
back-end dev/Java 2021. 11. 7. 15:43

2021.10.21(목) 🌿 배열(Array) 🌱 개념 하나의 공간에, "같은 자료형의" 여러 개의 값들을 담을 수 있음 배열 선언 시 앞에 자료형 써줘야 함 배열 = 순서가 있는 공간 → 순서가 있음 = index가 있음 → index가 있는 공간/칸이 만들어짐 배열의 각 index("색인, 목록") 자리에 실제 값이 담김 → index = 배열의 각 방 index는 0부터 시작 + 같은 크기로 만듦 Q. 배열을 사용하는 이유 🌱 선언 및 할당 배열 할당 = 이 배열에 몇 개의 값이 들어갈지/index 몇 개 쓸지/공간 몇 개 필요한지, 배열의 크기를 정해주는 과정 → 지정한 갯수만큼 값이 들어갈 공간이 만들어짐 🌱 값 대입 배열의 각 index 자리에 값 대입 배열이름[index값] = 대입하고자 하..

article thumbnail
[KH정보교육원] 7일차_반복문, 분기문
back-end dev/Java 2021. 11. 7. 15:41

2021.10.20(수) 🌱 반복문 while문 예시들을 개념과 대비해서 잘 보자 무작위(random) 수까지의 합 구하기 /* while문: 또 다른 종류의 반복문 * * 표현법 * 초기식; // 필수는 아님 * while(조건식) { * (조건식이 true일 때) 반복적으로 실행할 코드; // a * 증감식; // 필수는 아님 * } * * 괄호 안의 조건식이 true일 경우 해당 구문(a)을 반복적으로 실행 * while(true): 무조건 반복시킴 -> 무한반복 */ public void method1() { // method1 영역 시작 // i가 1~5일 때 인사하기: 구현 방법은 다수 // 초기식 // 제어변수 i, j, k // 방법1) System.out.println("[방법1]"); ..

article thumbnail
[KH정보교육원] 6일차_조건문
back-end dev/Java 2021. 11. 7. 15:39

2021.10.19(화) 🌱 조건문 switch문 /* switch문 * 위->아래로 순차적으로 실행(o) 해당 값 case로 jump/pass(x); 단, c언어 등에서는 goto를 통해 진짜 jump하는 코드 있긴 함 * 동등비교 -> 해당 case(층수) 버튼 누르고 (다른 층들 거쳐 해당 case 층으로) 엘리베이터 타고 내려감 * * 표현식: * switch(아래에 기술할 값들과 동등 비교를 할 대상자) { * switch(정수, 문자, 문자열) { * * case 값1(정수, 문자, 문자열) : 대상자(값) == 값1이 true일 경우 실행할 코드1; // 지금까지 배운 '값' = literal값; Java 최신 version에서만 값 이외에도 변수명 입력 가능 * // 동등 비교 결과가 fa..

article thumbnail
[KH정보교육원] 5일차_조건문
back-end dev/Java 2021. 11. 7. 15:36

2021.10.18(월) 🌿 제어문(control statement) 프로그램의 흐름(flow)을 바꾸는 역할을 하는 문장 = 조건문(조건에 따라 다른 문장이 수행되도록 함) + 반복문(특정 문장들을 반복해서 수행) 🌱 조건문 if문 홀/짝수 판별 else (if) 정수 입력받고 양수/0/음수 판별 주민번호 입력 후 성별 판별 나이별 호칭 판별 계절 판별 로그인 기능 로직 📗 소감 논리를 프로그래밍 언어로 표현해서 의도한대로 연산 결과를 내도록 만드는 것이 (아직까지는) 무척 재미있다! 조건이 들어가니 프로그램이 훨씬 풍부해졌다. 📗 homework: if문 키보드로 정수 두 개를 입력 받아 각각 변수(num1, num2)에 저장하세요. 그리고 또 다른 정수를 입력 받아 그 수가 num1 이하거나 num..

article thumbnail
[KH정보교육원] 4일차_강제형변환, 연산자
back-end dev/Java 2021. 11. 7. 15:34

2021.10.15(금) 🌿 강제 형 변환 // 강제/명시적 형 변환 : 큰 바이트 -> 작은 바이트 public void forceCasting() { // (바꿀 자료형)값 // 1. double(8bytes) -> float(4bytes) float f1 = 4.0f; double d2 = 8.0; float f2 = (float)d2; // double형을 float형으로 저장하려면 강제형변환 필요 System.out.println(f2); // 2. double(8bytes) -> int(4bytes) double d3 = 10.89; int i3 = (int)d3; // double형을 int형으로 저장하려면 강제형변환 필요 System.out.println(i3); // 10 출력; 소수점 ..

article thumbnail
[KH정보교육원] 3일차_출력문, 입력, 형변환
back-end dev/Java 2021. 11. 7. 15:11

2021.10.14(목) 🌿 출력문 /* 1. 지금까지 9개의 자료형을 위와 같이 선언했고, * 2. 9개의 값을 초기화 진행했음 * 3. 9개의 값이 제대로 들어갔는지 확인해보기 * 출력양식: "변수이름 : 변수값"; Run 클래스에서 실행 */ System.out.println("isTrue : " + isTrue); System.out.println("isFalse : " + isFalse); System.out.println(); // 콘솔 출력에서 가독성을 위해 한 줄 띄어쓰기 System.out.println("bNum : " + bNum); System.out.println("sNum : " + sNum); System.out.println("iNum : " + iNum); System.ou..

article thumbnail
[KH정보교육원] 2일차_Java 프로그래밍 시작, 변수
back-end dev/Java 2021. 11. 7. 15:05

2021.10.13(수) 수업 내용 1교시: Java 프로그래밍 소개(반복) 2교시: Java 환경설정(반복) 3~4교시: Eclipse 프로젝트 구성 - Java project > packages > classes - 주석문 - 객체 생성 예시: MethodTest mt = new MethodTest(); // project 먼저 생성 > packages > classes // 우리가 쓰는 건 Java version 1.8 // 문법은 googling하면 다 나옴; 컴퓨터 작동 원리를 이해하자 // 컴퓨터 프로그램은 위->아래 실행 + 컴퓨터는 0과 1 밖에 모름 package com.kh.first; // 패키지 선언부; 현재 클래스의 위치 /* 패키지 * 한 패키지 안에 여러 개의 클래스들이 존재할..

article thumbnail
[KH정보교육원] 1일차_환경 설정
back-end dev/Java 2021. 11. 7. 15:02

2021.10.4(월) 1교시: 행정팀 OT - 원격 교육 안내 - 출석 체크 방법 - 훈련장려금 규칙 2교시: 총무팀 OT - 오프라인 강의장 시설 소개 3교시: 취업팀 OT - 교육 기간 + 수료 후 6개월 취업 지원 프로세스 - 출석 = 성실함의 지표 4~5교시: 우리반 소개 - 커리큘럼 - 전공자 비중이 비교적 작은 편 - NCS(국가 직무 능력 표준) 능력 단위 평가 - 꾸준한 복습 - 100% 출석 6교시: Java 환경 설정 - OpenJDK8(Windows x64) 설치 - Eclipse IDE(mars 2021) 설치 7교시: command prompt로 Java 실행 - Hello.java 작성 → javac.exe(Java 컴파일러) 사용해서 컴파일하여 Hello.class 생성 → ..

article thumbnail
[Java] 입력받은 월의 최대 일수 출력하기
back-end dev/Java 2021. 8. 7. 02:25

사전과제 v1 정말 비효율적인 if문의 극치.. 문제 요구사항대로 배열 활용은 못 했다. 어디서 어떻게 해야 할지 잘 모르겠다 → 추후 보완한 점 = 배열에 월 순서대로 월별 날짜 수를 저장해두고 꺼내 쓸 수 있다! 에러 내용 if문 기본 문법 %d에서 d 빠뜨림.. 그래도 자기 전에 결과 출력은 성공한 나, 칭찬한다..

article thumbnail
[Java] 두 수의 합 구하기
back-end dev/Java 2021. 8. 7. 02:22

에러 내용 - scanner 시작 글자 대소문자 - 변수 a, b 타입 중복 지정