Java/[도서] 자바의 정석(14)
-
연산자, 조건문과 반복문 (2/8)
참고한 repository : https://github.com/vividswan/The_Essence_of_Java_Book_Study 연산자 연산자 : 연산을 수행하는 기호(+, -, *, / 등) 피연산자 : 연산자의 작업 대상 연산자는 피연산자로 연산을 수행한 후 결괏값을 반환합니다. 연산자의 종류 산술 연산자 +, -, *, /, % 비교 연산자 , >=, 비교 > 논리 > 대입 우선순위 단항(1) > 이항(2) > 삼항(3) 우선순위 단항 연산자와 대입 연산자를 제외한 모든 연산의 진행 방향은 왼쪽에서 오른쪽 산술 변환 연산 전에 피연산자 타입의 일치를 위해 자동 형변환되는 것을 '산술 변환' 또는 '일반 산술 변환'이라 부름 두 피연산자의 타입을 같게 일치 시킴 보다 큰 타입으로 일치 피연산..
2022.11.25 -
자바, 변수, 기본형과 참조형, 상수와 리터럴, 진법, 형변환 (1/8)
토이 프로젝트를 하면서 자바에 대해 중간중간 개념이 헷갈리는 부분이 보였습니다. 예전에 자바의 정석을 1독 한 적 있지만 다시 읽고 처음부터 정리하는 것이 너무 오래 걸릴 것 같아 항상 미뤄왔었습니다. 그러다 우연히 잘 정리된 GitHub repository가 있어 많은 도움을 받았습니다. 이번 시리즈는 하나하나 깊게 개념을 공부해서 정리한 것이 아닌 크게 크게 어떤 개념들이 있는지 마치 도서의 목차를 머릿속에 넣는다는 느낌으로 진행하고자 합니다. 참고한 repository : https://github.com/vividswan/The_Essence_of_Java_Book_Study 자바(Java Programming Language)란? 썬 마이크로시스템즈에서 개발 후 1996년 1월 공식 발표 운영체..
2022.11.24 -
생성자(constructor)
자바의 정석 Chapter 소제목 6. 객체지향 프로그래밍 5. 생성자(constructor) 생성자란? 생성자는 인스턴스가 생성될 때 호출되는 ‘인스턴스 초기화 메서드’입니다. 따라서 인스턴스 변수의 초기화 작업에 주로 사용됩니다. |참고| 인스턴스 초기화란 인스턴수 변수들을 초기화하는 것을 뜻한다. 생성자 역시 메서드처럼 클래스 내에 선언되며, 구조도 메서드와 유사하지만 리턴값이 없다는 점이 다릅니다. 그렇다고 해서 생성자 앞에 리턴값이 없음을 뜻하는 키워드 void를 사용하지는 않고, 단지 아무것도 적지 않습니다. |참고| 생성자도 메서드이기 때문에 리턴값이 없다는 의미로 void를 붙여야 하지만, 모든 생성자가 리턴값이 없으므로 void를 생략할 수 있게 한 것이다. 생성자의 조건 💡 1. 생성자..
2022.05.10 -
오버라이딩(overriding)
자바의 정석 Chapter 소제목 7. 객체지향 프로그래밍 2. 오버라이딩(overriding) 오버라이딩이란? 조상 클래스로부터 상속받은 메서드의 내용을 변경하는 것(재정의)을 오버라이딩이라고 합니다. 2차원 좌표계의 한 점을 표현하기 위한 Point클래스가 있을 때, 이를 조상으로 하는 Point3D클래스 - 3차원 좌표계의 한 점을 표현하기 위한 클래스 코드를 작성해보았습니다. class Point { int x; int y; String getLocation() { return "x :" +x+ ", y :" +y; } } class Point3D extends Point { int z; String getLocation() { // 오버라이딩 return "x :" +x+ ", y :" +y+ ..
2022.05.07 -
오버로딩(overloading)
자바의 정석 Chapter 소제목 6. 객체지향 프로그래밍 4. 오버로딩(overloading) 오버로딩이란? 메서드도 변수와 마찬가지로 같은 클래스 내에서 서로 구별될 수 있어야 하기 때문에 각기 다른 이름을 가져야 합니다. 그러나 자바에서는 한 클래스 내에 이미 사용하려는 이름과 같은 이름을 가진 메서드가 있더라도 매개변수의 개수 또는 타입이 다르면, 같은 이름을 사용해서 메서드를 정의할 수 있습니다. 이처럼 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것을 ‘메서드 오버로딩’ , 짧게 줄여서 오버로딩이라 합니다. 오버로딩의 조건 오버로딩이 성립하기 위해서는 다음과 같은 조건을 만족해야 합니다. 💡 1. 메서드 이름이 같아야 한다. 2. 매개변수의 개수 또는 타입이 달라야 한다. 위 조건을..
2022.05.05 -
Scanner보다 빠른 입력 BufferedReader, StringTokenizer
알고리즘 문제를 풀 때 입출력을 좀 더 빠르게 해야 할 경우가 생깁니다. 그중 오늘은 입력 클래스를 정리하려 합니다. 저는 원래 쓰기 간편한 Scanner를 주로 이용하였었는데요, 같은 문제를 풀었을 때, Scanner와 BufferedReader를 사용했을 때의 처리속도가 2배 이상 난 경우도 있었습니다. 이번 포스팅 정리를 통해서 BufferedReader, StringTokenizer를 이해하는 시간을 가져보도록 하겠습니다. Scanner // Scanner 사용 시 입력 형태. Scanner sc = new Scanner(System.in); int n = sc.nextInt(); // int String s1 = sc.next(); // String String s2 = sc.nextLine()..
2022.05.03