오늘은 Day 3 챌린지를 시작해보자. 어제와 마찬가지로 Tutorial 강의를 먼저 수강하고 다음 포스팅에서 코드를 소개하고 설명하겠다. 우선 강의 실습 코드부터 확인하자. 우선 첫번째로는 이전 시간에 만든 Car클래스에 메서드를 추가하는 코드였다. Car 클래스부터 확인해보자. /* VARIABLES: 1. DECLARE 2. ALLOCATE 3. INITIALIZE INSTANCE METHODS & PROPERTIES CONSTRUCTORS: 1. DEFAULT 2. CUSTOM */ public class Car { int maxSpeed = 100; int minSpeed = 0; double weight = 4079; boolean isTheCarOn = false; char condition..
지난 포스팅의 Day2 강좌 리뷰에 이어 이번 포스팅에서는 Day2 자바 코드 리뷰를 진행해보자. 영어로 된 문제이지만 문제를 이해하는 데에 큰 어려움은 없었다. BufferedReader를 통해 입력받는 형식은 이미 짜여져 있었고 메인 메서드에서 solve()를 호출까지 해준 상태다. 우리는 solve 생성자만 완성시켜 원하는 출력값의 형태로 출력만 시키면 되는 문제다!! 수식 계산이 헷갈릴 순 있었어도 문제에서 수식까지 제공해줘버려서 딱히 어려움은 없었다. 바로 코드를 보자. import java.io.*; import java.math.*; import java.security.*; import java.text.*; import java.util.*; import java.util.concurre..
오늘은 Day2 챌린지를 시작해보자. 우선 오늘 처음 알게된 사실인데 문제 가장 위에 Tutorial 강의가 있어서 강의 먼저 수강했다. 이번 포스팅에서는 강의 내용을 정리하고, 다음 포스팅에서 코드를 진행하겠다. (Day 2의 소스코드가 궁금한 사람은 여기 클릭(필자의 다음 포스팅으로 이동)) 우선 코드부터 확인하자. /* VARIABLES: 1. DECLARE 2. ALLOCATE 3. INITIALIZE INSTANCE METHODS & PROPERTIES CONSTRUCTORS: 1. DEFAULT 2. CUSTOM */ public class Car { int maxSpeed = 100; int minSpeed = 0; double weight = 4079; boolean isTheCarOn =..
오늘은 Day 1 문제를 풀어보고 코드를 리뷰해보자. 영어 문제이긴 하지만 예제와 함께 보면 이해하는 데에 어려움은 없을 것이다. 기존에 제시된 i, d, s에 추가로 int형, double형, string형 값을 입력받아 출력 조건에 맞게 출력시키면 되는 문제였다. 문제는 어렵지 않았으나 많이 낚이는(?) 부분이 있었을 텐데 코드를 통해 설명하겠다. 바로 코드로 들어가보자! import java.io.*; import java.util.*; import java.text.*; import java.math.*; import java.util.regex.*; public class Solution { public static void main(String[] args) { int i = 4; double..
오늘부터 30일동안 hackerrank challenges에 도전한다 오늘은 그 첫번 째날로 Day 0 문제를 풀어보고 코드를 리뷰해보자. 문제가 영어이긴 하지만 예제를 보면 이해하는 데 어려움은 없을 것이다. "Hello, World." 고정 문자열 뒤에 inputString을 출력시켜 주면 된다. 문제가 어렵지 않았으니 바로 코드로 들어가보자! public class Solution { public static void main(String[] args) { // Create a Scanner object to read input from stdin. Scanner scan = new Scanner(System.in); // Read a full line of input from stdin and s..
🤔 프로그램 오류란? ✔ 컴파일 에러(compile-time error) : 컴파일 할 때 발생하는 에러 ✔ 런타임 에러(runtime error) : 실행할 때 발생하는 에러 (프로그램 종료) ✔ 논리적 에러(logical error) : 작성 의도와 다르게 동작 (프로그램 종료 x) 🤔 예외처리의 정의와 목적 ✔ 정의 : 프로그램 실행 시 발생할 수 있는 예외의 발생에 대비한 코드를 작성하는 것 ✔ 프로그램의 비정상 종료를 막고, 정상적인 실행상태를 유지하는 것 🤔 try-catch문에서의 흐름 ✅ try 블럭 내에서 예외가 발생한 경우 1. 발생한 예외와 일치하는 catch블럭이 있는지 확인 2. 일치하는 catch블럭을 찾게 되면, 그 catch블럭 내의 문장들을 수행하고 전체 try-catch문..
오늘은 자바에서 아주 중요하고 많이 쓰이는 익명클래스에 대해 알아보자. 🤔 익명클래스(anonymous class)란? ✔ 이름이 없는 일회용 클래스 ✔ 정의와 생성을 동시에! 원래 객체는 다음과 같이 선언하고 생성한다. 근데 익명 클래스는 '이름' 이 없으므로 다음과 같이 선언한다. 본인 이름이 없기 때문에 조상클래스이름 혹은 구현인터페이스의 이름을 사용한다. 예제를 살펴보자. import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; class Tes { public static void main(String[] args) { Button b = new Button("Start"); b.addAc..
지난 포스팅에서 '객체지향 프로그래밍'파트의 시리즈가 완강되어서 강의가 끝난줄 알았는데 추가 강의가 있어서 공부한 내용을 바탕으로 포스팅한다. 바로 들어가보자. 😊 🤔 내부 클래스의 제어자와 접근성이란? ✔ 내부 클래스의 제어자는 변수에 사용 가능한 제어자와 동일 class P { class InstanceInner { /* 인스턴스 내부 클래스 */ int iv = 100; // static int cv = 100; // 에러!! static 변수를 선언할 수 없다. final static int CONST = 100; // final static은 상수이므로 허용 } static class StaticInner { /* static 내부 클래스 : static 내부 클래스에서는 외부 클래스의 인스턴스..
🤔 인터페이스를 이용한 다형성이란? ✔ 인터페이스 타입 매개변수는 인터페이스 구현한 클래스의 객체만 가능 ⭐⭐⭐ ✔ 인터페이스를 메서드의 리턴타입으로 지정할 수 있다. abstract class Unit { int x, y; abstract void move(int x, int y); void stop() { System.out.println("멈춥니다."); } } interface Fightable { void move(int x, int y); // public abstract 생략됨 void attack(Fightable f); // public abstract 생략됨 } class Fighter extends Unit implements Fightable { public void move(int..
🤔 추상 클래스(abstaract class)란? ✔ 미완성 설계도. 미완성 메서드를 갖고 있는 클래스 ✔ 다른 클래스 작성에 도움을 주기 위한 것. 인스턴스 생성 불가 ✔ 미완성 메서드. 구현부(몸통, {})이 없는 메서드 /* 주석을 통해 어떤 기능을 수행할 목적으로 작성하였는지 설명 */ 다른 클래스 작성에 도움을 주기 위한 것. 인스턴스 생성 불가 Player p = new player(); // 에러. 추상 클래스의 인스턴스 생성 불가 그럼 인스턴스 생성 불가한 클래스를 만드는 이유가 뭘까? 👉 다른 클래스 작성에 도움을 주기 위해서!! abstract class Player { // 추상클래스(미완성 클래스) abstract void play(int pos); // 추상메서드(몸통{}이 없는 ..
오늘은 객체지향의 꽃인 다형성에 대해 학습해보자. 🤔 다형성(polymorphism)이란? ✔ 조상 타입 참조 변수로 자손 타입 객체를 다루는 것 ✔ 자손 타입의 참조변수로 조상 타입의 객체를 가리킬 수 없다. 조상 타입 참조 변수로 자손 타입 객체를 다루는 것 Tv t = new SmartTv(); // 타입 불일치 위와 같이 Tv (조상 타입 참조 변수) 리모콘으로 SmartTV(자손 타입 객체)를 다루는 것을 다형성이라고 한다. 자손 타입의 참조변수로 조상 타입의 객체를 가리킬 수 없다. Tv t = new SmartTv(); // 허용 SmartTv s = new Tv(); // 허용 안 됨. // 자손 타입의 참조변수로 조상 타입의 객체를 가리킬 수 없다. SmartTv 리모컨 버튼 6(Tv버튼..
🤔 제어자(modifier)란? ✔ 클랫와 클래스의 멤버(멤버 변수, 메서드)에 부가적인 의미 부여 🤔 static이란? 🤔 final이란? 🤔 abstract 란? 추상의, 미완성의 ✅ 추상메서드란? ✔ 몸통이 없는 메서드 ✔ 미완성 메서드 ✔ 선언부만 있고, 구현부는 없다. ✔ abstract 키워드가 붙는다. ✅ 추상클래스란? ✔ 추상 메서드를 갖고 있는 클래스 추상클래스의 인스턴스 생성불가 ❌ abstract class AbstractTest { // 추상클래스 (추상메서드를 포함한 클래스) abstract void move(); // 추상 메서드(구현부가 없는 메서드) } AbstractTest a = new AbstractTest(); // 에러!! 추상 클래스의 인스턴스 생성불가 추상클래스는..
🤔 참조변수 super란? ✔ 객체 자신을 가리키는 참조변수. 인스턴스 메서드(생성자) 내에서만 존재 ✔ 조상의 멤버를 자신의 멤버와 구별할 때 사용 🤔 this와 super의 차이점? this : 지역변수(local variable)와 인스턴스 변수(instance variable)의 구분에 사용 super : 조상의 멤버와 자신의 멤버 구분에 사용 다음의 예제를 보자. class T2 { public static void main(String[] args) { Child c = new Child(); c.method(); } } class Parent { int x = 10; /** super.x */ } class Child extends Parent { int x = 20; // this.x vo..
그간 필자는 객체지향이 정확히 무엇인지도 모르고 생성자, 오버로딩, 오버라이딩은 왜 배우는지도 모르고 주입식으로 학습했다. 객체지향 : 객체 단위로 프로그래밍 하는것, 코드의 중복 줄일 수 있음. 오버로딩 : 생성자 여러 개 생성하는 데 매개변수 다른 것 오버라이딩 : 상속받은 생성자 재정의 하는 것 등 이론식으로 공부했다. 그러다 다음의 예제를 만나고 모든 것이 한번에 이해가 되었다. 이전 필자의 포스팅에서 소개한 내용인데 필자의 시야가 확 트이는? 예제였기에 다시 한 번 포스팅 한다. (이전 포스팅 참고) 바로 들어가보자. 다음의 코드를 보자. (코드를 잘 짜는 것이 얼마나 코드를 단축시킬 수 있는지 알게 되는 코드이다.) 필자는 처음에 강의를 듣고 소름이 돋았다. 👍 class MyPoint3 ex..
🤔 상속(Inheritance)란? ✔ 기존의 클래스로 새로운 클래스를 작성하는 것.(코드의 재사용) 두 클래스를 부모와 자식으로 관계를 맺어주는 것 ✔ ⭐ 자손은 조상의 모든 멤버를 상속받는다. (생성자, 초기화블럭 제외) 따라서 ✔ 자손의 멤버 개수는 조상보다 적을 수 없다.(같거나 많다.) 왜냐 모든 멤버를 상속받으니까!! ✔ 자손의 변경은 조상에 영향을 미치지 않는다. 🤔 포함(composite) 관계란? ✔ 포함(composite)이란? 클래스의 멤버로 참조변수를 선언하는 것 작은 단위의 클래스를 만들고, 이 들을 조합해서 클래스를 만든다. class Poitn { int x; int y; } class Circle { int x; // 원점의 x좌표 int y; // 원점의 y좌표 int r;..
- Total
- Today
- Yesterday
- 22 정보처리산업기사
- 코드
- 해커랭크 자바
- 챌린지
- Java
- stack
- BAEKJOON
- 자바의 정석
- JPA
- 풀이
- 해커랭크 챌린지
- hackerrank challenges
- hackerrank
- 정보처리산업기사
- 소스코드
- 해커랭크
- 22 정보처리 산업기사
- challenges
- 자바
- 백준
- 개발자
- 그리디
- queue
- 정보처리 산업기사
- LinkedList
- 강의
- 디버깅
- ORM
- 정보처리산업기사 공부법
- 해커랭크 자바 챌린지
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |