분류 전체보기
-
[자바의 정석] ch7-1 ~ ch7-11 객체지향 개념 정리 (상속, Object클래스, 오버라이딩, 참조변수 super, 생성자super() )Programming Language/Java 2021. 7. 19. 00:21
ch7-1 상속(Inheritance) - 기존의 클래스로 새로운 클래스를 작성하는 것(코드의 재사용) - 두 클래스를 부모와 자식으로 관계 맺어주는 것 - 자손은 조상(부모의 부모)의 모든 멤버를 상속받음(생성자, 초기화 블럭 제외) - 자손의 멤버 개수는 조상보다 적을 수 없음(같거나 많음) -> 자손의 멤버개수 >= 조상의 멤버 개수 - 자손의 변경은 조상에 영향을 미치지 않음(단, 조상의 변경은 자손에게 영향을 줌) ex) class 자식클래스 extends 부모클래스 { } ch7-3 포함 관계 - 포함(composite) : 클래스의 멤버로 참조변수를 선언하는 것 class Circle { int x; class Circle{ class Point { int y; -----> Point c =..
-
[백준 알고리즘] 11021번: A+B - 7 (Java: for문)Algorithm 2021. 7. 18. 15:11
[문제] 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. [간략한 풀이] 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10) [알고리즘 분류] 수학, 구현, 사칙연산 [제출한 코드] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int T = sc.nextInt(); for(int i = 1; i 아래 오답들에 이유가 ..
-
[백준 알고리즘] 15552번: 빠른 A+B (Java: for문)Algorithm 2021. 7. 17. 23:58
[문제] 본격적으로 for문 문제를 풀기 전에 주의해야 할 점이 있다. 입출력 방식이 느리면 여러 줄을 입력받거나 출력할 때 시간초과가 날 수 있다는 점이다. C++을 사용하고 있고 cin/cout을 사용하고자 한다면, cin.tie(NULL)과 sync_with_stdio(false)를 둘 다 적용해 주고, endl 대신 개행문자(\n)를 쓰자. 단, 이렇게 하면 더 이상 scanf/printf/puts/getchar/putchar 등 C의 입출력 방식을 사용하면 안 된다. Java를 사용하고 있다면, Scanner와 System.out.println 대신 BufferedReader와 BufferedWriter를 사용할 수 있다. BufferedWriter.flush는 맨 마지막에 한 번만 하면 된다...
-
[백준 알고리즘] 2742번: 기찍 N (Java: for문)Algorithm 2021. 7. 17. 22:13
[문제] 자연수 N이 주어졌을 때, N부터 1까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오. [간략한 풀이] - 첫 번째 줄에 N개 숫자 출력해야하니까 Scanner 로 N 입력 받음 - for문을 N 길이만큼 반복 - 마지막(for문 내부)에 출력문 입력 -> i의 값을 매 줄 출력 [알고리즘 분류] 구현 [제출한 코드] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); for(int i=N; i>N-N; i--) ..
-
[자바의 정석] ch6-30 ~ ch6-41 객체지향 개념 정리 (오버로딩, 생성자, 생성자 this(), 참조변수 this, 변수의 초기화)Programming Language/Java 2021. 7. 16. 23:03
ch6-30 오버로딩(overloading) - 한 클래스 안에 같은 이름의 메서드 여러개를 정의하는 것 (하나의 메서드 이름에 메서드 하나여야 하는데, 오버로딩은 하나의 메서드 이름에 여러개의 메서드) - 오버로딩이 성립하기 위한 조건 (3가지) 1. 메서드 이름이 같아야함 2. 매개변수의 개수 또는 타입이 달라야함 3. 반환 타입은 영향 없음 보기1 (조건1만 성립-> 오버로딩 아님) -> 메서드 중복정의 int add(int a, int b) { return a+b; } int add(int x, int y) { return x+y; } 보기2 (조건1만 성립-> 오버로딩 아님) -> 메서드 중복정의 int add(int a, int b) { return a+b; } long add(int a, i..
-
[자바의 정석] ch6-22 ~ ch6-29 객체지향 개념 정리 (호출스택, static 메서드)Programming Language/Java 2021. 7. 16. 22:19
ch6-22 호출스택 - 메서드 수행에 필요한 메모리가 제공되는 공간 - 메서드가 호출되면 호출스택에 메모리 할당. 종료되면 해제. 스택(stack): 밑이 막힌 상자. 위에 차곡차곡 쌓임 ch6-23 기본형 매개변수 * 스택 부분 코드 보며 그림 그릴 수 있어야함 기본형 매개변수 - 변수의 값을 읽기만 할 수 있음 (read only) 참조형 매개변수 - 변수의 값을 읽고 변경할 수 있음(read & write) ch6-24 참조형 매개변수 * 스택 부분 코드 보며 그림 그릴 수 있어야함 ch6-25 참조형 반환타입 * 스택 부분 코드 보며 그림 그릴 수 있어야함 * static 메서드는 객체 생성 없이 호출 가능함 ch6-26 static 메서드와 인스턴스 메서드 -> iv 사용 여부로 나뉨 인스턴스..
-
[자바의 정석] ch6-11 ~ ch6-21 객체지향 개념 정리 (선언위치, 변수종류, 메서드, return문)Programming Language/Java 2021. 7. 14. 23:17
ch6-11 선언위치에 따른 변수의 종류 영역은 크게 두 가지로 나뉨 1. 클래스 영역 - iv, cv(static+iv) 2. 메서드 영역 - lv 변수의 종류 선언위치 생성시기 클래스 변수 (class variable) 클래스 영역 클래스가 메모리에 올라갈 때 인스턴스 변수(instance variable) 클래스 영역 인스턴스가 생성되었을 때 지역변수(local variable) 클래스 영역 이외의 영역 (메서드 생성자, 초기화 블럭 내부) 변수 선언문이 수행되었을 때 *클래스변수는 객체 생성이 필요 없음. 아무때나 사용 가능 *인스턴스 변수는 객체 생성 필요. 객체 생성을 해야 사용 가능 *지역변수는 메서드 종료 시 자동제거됨 *프로그래밍 관점에서 객체는 iv(인스턴스 변수) 를 묶어 놓은 것 c..