분류 전체보기
Chapter 07-3 추상 클래스, 추상 메소드
추상 클래스란 객체를 직접 생성할 수 있는 클래스를 실체 클래스라고 한다. 이 실체 클래스들의 공통적인 특성을 추출해서 선언한 클래스를 추상 클래스하고 한다. 추상 클래스와 실체 클래스는 상속의 관계를 가지고 있다. 추상 클래스가 부모, 실체 클래스가 자식으로 구현되어 실체 클래스는 추상 클래스(부모)의 모든 특성을 물려받고 추가적인 특성을 가질 수 있다. (여기서 특성이란 필드와 메소드들을 말한다.) 예를 들면 실체 클래스에는 Bird.class, Dog.class, Cat.class 와 같은 것들이 선언되어 있다면, 이 실체 클래스들의 공통되는 필드와 메소드를 따로 선언한 Animal.class 추상 클래스를 선언할 수 있다. 추상 클래스의 용도 공통된 필드와 메소드의 이름을 통일할 목적 실체 클래스..
Chapter 06-6-1 패키지와 접근 제한자
패키지 프로젝트를 개발하다 보면 수많은 클래스를 작성하게 될 때가 많다. 몇백 개 혹은 몇천 개가 될 수도 있는 클래스들을 관리하지 않으면 유지 보수가 어렵게 된다. 그래서 이런 많은 클래스를 관리하기 위해 패키지를 사용한다. 클래스는 이름이 동일하더라고 패키지가 다르면 다른 클래스로 인식한다. 클래스의 전체 이름은 '패키지 이름+클래스 이름'으로 클래스명만 입력하는 것은 정확한 방법이 아니다. 따라서 만약 같은 클래스명이라도 다른 패키지에 들어 있으면 다른 클래스로 사용된다. 더보기 ex) 1. com/example/ClassA와 cam/example/ClassB인 같은 경로에 있는 클래스 2개가 있다고 가정해보자. ClassA 클래스명은 com.example.ClassA 이다. ClassB 클래스명은..
Chapter 06-4-2 메소드 호출
※해당 글은 신용권님의 혼자 공부하는 자바를 참고하며 적은 글입니다. 메소드 호출 메소드 호출은 클래스 내부의 다른 메소드에서 호출하는 경우, 클래스 외부의 메소드에서 호출하는 경우 두 가지로 나뉜다. 클래스 내부에서 다른 메소드를 호출할 경우에는 단순히 메소드 이름으로 호출한다. 클래스 외부의 메소드를 호출 할 때는 우선 클래스로부터 객체를 생성한 뒤 참조 변수를 이용해서 메소드를 호출해야 한다. (객체가 존재해야 메소드도 존재하기 때문이다.) 객체 내부에서 호출 클래스 내부에서 다른 메소드를 호출할 경우, 단순히 메소드 이름으로 호출할 수 있다. 만약 메소드가 매개 변수를 가지고 있을 때에는 매개 변수의 타입과 수에 맞게 매개 값을 제공한다. 메소드가 리턴 값이 없거나, 있어도 받고 싶지 않을 경우 ..
Week I Learned ..Week2
22.11.21~22.11.26 WIL 1. 알고리즘 2. Spring 입문 1. 알고리즘 이번 주에 lv0 19문제 lv1 10문제를 풀었다. lv0인 경우 아주 간단한 변수, 배열, 반복문, 조건문만 잘 다루면 풀 수 있는 문제가 많았지만 lv1부터는 수학적으로 다가가야 하는 문제나 list strim math map 등 자바 내, 외부의 라이브러리의 메서드를 사용하는 경우가 많았다. 그래서 난 클래스, 상속, 인터페이스와 같은 자바에 대한 심화적인 이해와 list, map 등 컬랙션 프레임워크를 공부하기로 했다. 그럼 lv1 이상인 알고리즘 문제라도 지금보다 조금 더 원활하게 풀 수 있지 않을까 기대를 하고 있다. 2. Spring 입문 이번주 목요일부터 Spring 공부를 시작했다. 김영한 님의 ..
Chapter 05-2 배열
배열 1개의 데이터만 저장할 수 있는 변수는 여러 변수를 생성 하기에 너무 비효율적으로 코드가 길어진다. 배열이란, 여러 데이터를 저장해야 할 때 좀 더 효율적이고 간단하게 여러 데이터를 묶어서 저장하는 방법이다. 많은 양의 데이터를 다루는 프로그램에서 더 효율적인 방법으로 배열을 사용할 수 있다. 배열의 특징 배열은 같은 타입의 데이터만 저장할 수 있다. 만약 다른 타입의 데이터 값을 저장하려고 하면 타입 불일치 컴파일 에러가 난다. 한 번 생성된 배열은 길이를 늘이거나 줄일 수 없다. (유동적으로 바뀌는 여러 데이터의 저장소를 만들고 싶다면 java의 List를 사용하도록 하자.) 배열 선언 배열을 선언하기 위해서는 우선 배열 변수를 선언해야 한다. //example code1 int[] intArr..
Chapter 06-1 객체
어떠한 완성본을 만들 때 부품을 하나씩 조립하고 부품끼리 조립하여 완성품을 만들듯이 소프트웨어에서도 똑같은 작업을 진행하게 되는데 그때 부품에 해당하는 것을 객체라고 한다. 객체를 하나씩 조립해서 완성된 프로그램을 만드는 기법을 객제 치향 프로그래밍이라고 한다. 객체란 물리적으로 존재하거나 추상적인것 모든 것이 될 수 있습니다. 책상, 사람, 동물 혹은 걷기, 더하기 등 모든 속성과 동작을 각각 필드와 메소드라고 부른다. 이 객체들은 각각 독립적으로 존재하고 다른 객체와 서로 상호작용 하면서 동작한다. 자바에서는 객체들 사이 상호작용 수간을 메소드라고 부른다. 이때 객체가 다른 객체의 기능을 이용하는 것이 메소드 호출이다. return calculator.plus(10,20); 도트 연산자는 객체의 필드..
Chapter 05-1 참조 타입과 참조 변수
※이 글은 신용권 님의 혼자 공부하는 자바를 공부하며 참고한 글입니다. 자바의 타입은 크게 기본 타입(primitive type)과 참조 타입(reference type)으로 분류된다. 기본 타입에 대한 설명은 Chapter 01서 참조할 수 있다. 참조 타입 참조 타입이란 객체의 번지를 참조하는 타입으로 배열, 열거, 클래스 , 인터페이스를 말한다. 참조 타입인 배열, 열거, 클래스, 인터페이스 변수는 메모리의 번지를 변수 안에 저장한다. 번지를 통해 객체를 참조한다는 뜻에서 참조 타입이라고 부른다. 문자열 데이터를 저장하는 String 타입의 변수도 참조 타입 변수이다. 위 그림에서 메모리에서 기본 타입 변수와 참조 타입 변수가 어떻게 저장되는지 차이점을 볼 수 있다. 기본 타입 변수인 price, ..
Chapter 04-3 반복문, break문, continue문
※이 글은 신용권 님의 혼자 공부하는 자바를 공부하며 참고한 글입니다. 반복문 은 어떤 작업(코드)을 반복해서 수행시킬 때 사용된다. 반복문의 종류로는 for문, while문, do-while문이 있다. 반복문을 사용할 때 for문이나 while문 둘 중 어느 것을 사용해도 상관없지만 for문은 반복 횟수를 알고 있을 때 주로 사용되고, while문은 조건에 따라 반복할 때 주로 사용된다. while문과 do-while문의 차이는 반복문을 실행하기 전 적어도 한번 실행을 하고 반복을 시작할지 말지의 차이만 있다. For문 //example code 1 System.out.println("이 문장을 10번 출력할 것 입니다."); System.out.println("이 문장을 10번 출력할 것 입니다.")..
Week1 WIL.
22.11.13 ~ 22.11.19 배운 목록. 1. 회원가입, 로그인 기능 구현 2. JWT 3. 카카오 맵 api 활용 4. 알고리즘을 풀며 느낀 점 1. 회원가입, 로그인 기능 구현 DB에 비밀번호를 저장할 때 해시 함수를 사용하여 누군가가 db에 접근해도 비밀번호를 못 알아내게 저장한다. 입력받은 아이디 값과 해시 함수를 적용한 비밀번호를 DB에 비교하여 찾아내는 방법으로 로그인한다. [프로젝트 때 작성한 코드] @app.route('/api/login', methods=['POST']) def api_login(): id_receive = request.form['id_give'] pw_receive = request.form['pw_give'] # 회원가입 때와 같은 방법으로 pw를 암호화합니..
Hanghae Solution [Math.random()]
Q. while문과 Math.random() 메소드를 이용해서 2개의 주사위를 던졌을 때 나오는 눈을 (눈1, 눈2) 형태로 출력하고, 눈의 합이 5가 아니면 계속 주사위를 던지고, 눈의 합이 5이면 실행을 멈추는 코드를 작성해보세요. 눈의 합이 5가 되는 조합은 (1,4), (4,1), (2,3), (3,2)입니다. 출력 예시! ```jsx 시작! (3,6) (2,6) (1,4) 끝! ``` Sol. 문제 풀이 public class HangheaSol02 { public static void main(String[] arg){ //1. Math.random() 메소드는 0 0 1