JAVA 8

[JAVA] 상속 / 추상메서드 (8)

해당 게시물에서는 개인적으로 자바에서 가장 어렵다고 생각하는 상속과 추상메서드에 대해서 설명해보겠다. [상속 (extends)] : 다른 클래스가 가지고 있는 멤버들을 새로 작성하지 않고 가져와서 사용하는 문법으로, 부모클래스가 가진 필드, 메서드 그리고 타입을 물려준다. 그리고 자식 클래스는 그것을 받아서 자신 것처럼 사용한다. 일단 상속의 설명에서 부모/자식 클래스라는 키워드를 처음 접했다면 와닿지 않을 것이다. 아래 코드예제를 확인하면서 알아보자.public class Animal() { String name; String age; }public class Dog() extends Animal {}public class Cat() extends Animal {} 위에 코드를 확인해..

JAVA 2025.05.22

[JAVA] final / static 키워드 알아보기 (7)

[final] : 재할당이 불가능하도록 변수를 선언하기 위한 키워드final 키워드를 사용 시, 해당 변수는 재할당이 불가능하다. 다시말해서 처음 선언에서 할당이 동시에 이루어지는 초기화가 필요하다 [static] : 클래스로부터 생성되는 모든 객체의 static 변수, 메서드는 다른 객체에서도 동일한 값, 기능을 하도록 하는 키워드 ex) 만약 Person 클래스에 name 필드를 static으로 선언하고 p1 p2 객체를 생성하고 두 객체에서 name 필드에 재 할당을 진행하면 두 필드 모두 마지막으로 할당한 값으로 출력된다. 이해가 안간다면 아래 코드 예시를 확인해보자. public class Person { static String name;}public void main() { Person p1..

JAVA 2025.05.21

[JAVA] 생성자 / 오버로딩 (6)

[생성자(Constructor)]생성자는 객체가 생성될 때 자동으로 호출되는 특수 목적의 메서드로 객체 초기화를 위해 사용된다. [생성자의 특징]1. 생성자 메서드 명은 클래스 이름과 동일해야 한다.2. 생성자는 다른 멤버함수와 다르게 리턴타입이 없다.3. 생성자는 객체가 생성될 때 자동으로 무조건 한 번 호출된다.4. 클래스에 최소 1개는 있어야하며, 생성자 코드는 기본적으로 보이지 않은 기본 생성자를 지니고있다. 5. 4번에서 말한 기본생성자는 정말 default로 적용되며, 가시적으로 기본 생성자를 정의해도 중복되지않고 가시적으로 보이는기본 생성자를 사용함6. 만약 파라미터가 하나라도 있는 생성자를 정의했다면 기본 생성자를 정의해 주어야 한다. [오버로딩(Overloading)]동일한 메소드명을 가..

JAVA 2025.05.20

[JAVA] 클래스 / 객체 (5)

해당 게시물에서는 "JAVA는 객체지향"이라는 키워드에서 "객체"라는 단어와 클래스에 대해서 글을 적어보려고 한다. [클래스]- 멤버 변수 : 클래스 내에 선언된 변수를 말하며 필드라고도 부른다.- 멤버 메서드 : 클래스 내에 선언된 메서드를 말한다. [객체]- 클래스 자료형 타입으로 new 키워드를 통해 생성되는 요소를 말하며, 클래스가 형식이라고 생각한다면 객체는 내용을 채워넣은 결과물 이라고 볼 수 있다. [객체 생성 예시]ex) Book book = new Book(); 그러면 왜 클래스와 객체를 통해서 코드를 구현하는 객체지향 형식의 코드를 사용하는 이유가 무엇인지 파악해야한다. 아마 많은 공대생들이 자바의 객체지향을 배울 때, 붕어빵을 이용하여 예시를 많이 들었을 것이다.클래스는 붕어빵틀로 ..

JAVA 2025.05.20

[JAVA] 배열(4)

[배열] 배열은 타입이 동일한 변수를 여러 개 한 번에 관리하는 변수의 형태라고 볼 수 있다. [문법]타입[] 변수명;변수명 = new 타입[크기];타입[] 변수명 = new 타입[크기];int[] x = new int[3]; 간단한 예제를 통해서 어떤식으로 사용하는지 알아보자.다음코드는 정수형 데이터 3개를 사용자로부터 입력받아야 하며, 들어왔던 순서대로 출력해야한다. System.out.println("===== Array ====="); Scanner sc = new Scanner(System.in); int[] grades = new int[3]; for(int i = 0; i 해당 코드에서는 int형 정수데이터 3개를 담을 수 있는 grades라는 배열을 선언하였다. 그리고 이전에 ..

JAVA 2025.05.20

[JAVA] 형변환 메서드(3)

JAVA를 배우면서 코딩테스트라던지 여러 문제 해결에서 변수 자료형과 배열을 통한 문제해결이 필요한 경우가 정말 많다.이번 게시물은 형변환 및 배열에 대해서 간단히 정리해보도록 하겠다. [형변환]형변환은 기존에 변수를 선언할때 지정했단 자료형이 아닌 다른 자료형으로의 변환을 말한다.그럼 "처음부터 자료형을 잘 지정해주면 되는거 아닌가요??" 라고질문할 수도 있지만 입력은 정수형으로 받고 알고리즘 계산은 문자열로 계산 후 정수형으로 출력해야하는 경우가 정말 많다. 예시를 들어 문제를 적어보겠다. fx1) 문자열로 입력받은 두 정수 x와 y에 대해서 어떤 값이 큰지 비교하여 큰 값을 출력하는 코드가 필요하다. 어떤식으로 코드를 구현해야하는가 (x와 y의 범위는 int형 범위 내 이다.) 해당 문제에서 x가 ..

JAVA 2025.05.19

[JAVA] 조건/반복문 (2)

[조건문] - if문 : 조건에 따라 명령을 실행 ( if (조건) {실행문} : 조건이 true일 때, 실행문이 작동 ) if문에는 else if, else로 크게 나뉜다. else if는 if문 조건이 아니면서 else if 조건 에 맞는경우 실행문을 실행한다. else는 여태까지 적었던 if문, else if문 조건문에 모두 해당하지 않는경우 else 구문을 실행한다. else if의 경우 여러번 적을 수 있으며, if와 else if들 간에 조건범위에서 겹치는 부분은 없어야한다. - switch 문 : 일치하는 case를 찾아서 실행 case를 통과하면, 아래의 명령을 전부 실행하므로 필요하므로 필요에 따라 break를 사용한다. 다음과 같은 코드에서 num이라는 변수에..

JAVA 2025.05.19

[JAVA] 변수와 연산자 (1)

[변수]값을 담는 공간으로 3가지 문법으로 사용된다.- 선언 : 변수 생성(타입 변수명;)- 할당 : 값 변경 (타입 변수명 = 값;)- 초기화 : 선언과 할당이 동시에 일어나는 것 [변수 타입]변수타입은 크게 참조형(reference)과 기본형(primitive)으로 나뉘게 된다. 참조형의 경우, 배열과 같은 주소 참조를 의미하므로 나중에 다루고, 기본형부터 알아보도록 하자. (뒤에 소괄호는 byte단위 크기를 의미함) - 정수 : byte(1), short(2), int(4), long(8) - 실수 : float(4), double(8) - 문자 : char(1) - 논리 : boolean(1) [연산자 종류] - 산술 연산자 : +, -, *, /, % - 비교 연산자 : , =, ==,..

JAVA 2025.05.19