JAVA 10

[JAVA] Overriding

오버라이딩 Overriding 오버라이딩이란 부모 클래스에 정의된 기능을 자식 클래스에 적합하게 수정하여 재정의하는 것이다. 오버로딩 != 오버라이딩 오버로딩: 메서드 추가 오버라이딩: 기존 메서드 재정의 (덮어쓰기) 규칙 메서드 이름은 부모 클래스의 메서드와 이름이 같아야 한다. 매개변수의 개수, 타입, 순서는 부모 클래스의 메서드와 같아야 한다. 리턴 타입 또한 부모 클래스와 같아야한다. 접근 제한자는 부모 클래스보다 같거나 넓어야 한다. 부모 클래스보다 더 상위의 예외를 던질 수 없다. 결론: 메서드 이름 & 매개변수 개수/타입/순서 & 리턴타입 모두 부모 클래스와 같아야 한다. public class Person { public void jump(){ System.out.println("두 다리로..

JAVA 2023.04.03

[JAVA] 상속 Inheritance

상속 상속은 기존 클래스의 재산을 다른 클래스에서 변수와 메서드를 재사용하기 위한 것이다. 생성자와 초기화 블록은 상속의 대상이 아니다. is ~ a SpiderMan이 Person의 자식 클래스라고 가정해보자. 이때 SpiderMan은 Person의 모든 멤버를 가지고 있기 때문에 SpiderMan is a Person 의 관계가 성립된다. public class Person { String name; public void eat() { System.out.println("eat"); } public void jump() { System.out.println("jump"); } } Person 클래스에 name 멤버 변수와 eat과 jump의 메소드가 선언되어 있다. public class Spider..

JAVA 2023.03.29

[JAVA] 생성자 Constructor

생성자 new 키워드와 함께 호출한 것이다. 주로 일반 멤버 변수의 초기화나 객체를 생성할 때 실행하는 작업을 정리한다. 멤버 변수(member variable) 메소드 밖에서 선언된 변수 생성자는 메서드처럼 선언부와 구현부가 나뉘지만 선언부에서 리턴 타입이 없고 클래스 이름과 똑같이 써야 한다. 기본 생성자 public class Person{ // 멤버필드 String name; int age; boolean isSleepy; public Person(){}// 기본 생성자 } 기본 생성자는 컴파일러로 인해 자동으로 삽입되는 구문이다. 기본 생성자는 인자를 전달받지 않기 때문에 위 구문처럼 작성하여 객체를 생성한다. this public class Person{ String name; int age;..

JAVA 2023.03.29

[JAVA] 정보은닉(getter, setter), 상속

정보 은닉 private 현재 클래스 내에서만 접근 가능하다. 즉, 외부에서 접근이 불가능하도록 만든 것이다. class Student{ String name; int age; // more than 18 } Student st = new Student(); st.age=2; // not occured an error but it's wrong for our scenario ​ ​ 학생 나이가 18살 이상일 경우에만 받고 싶다. 위 코드는 오류가 나지 않지만 서비스가 원하는 시나리오는 아닌 것이다. 이러한 모호한 데이터가 서비스의 시나리오와 맞지 않게 수정되거나 조회되지 않도록 개발자가 제공하는 대로만 조회 및 수정할 수 있도록 메서드를 제공한다. 조회 = getXxx() 수정 = setXxx() // ..

JAVA 2023.03.09

[JAVA] 생성자 Constructor

생성자 생성자란 객체를 생성할 때 호출하는 메서드와 같은 개념이다. 주로 멤버 변수의 초기화나 객체를 생성할 때 실행한다. * 멤버 변수 메소드 밖에서 선언된 변수 생성자는 메서드처럼 선언부 & 구현부로 나눠져 있지만 선언부에서 리턴타입이 없고 이름은 클래스와 똑같이 작성해야 한다. 특징 반드시 메소드 이름이 클래스 이름과 같아야 한다. returnType 자리가 없다. void 사용 불가능 한 개 이상의 생성자를 갖는다. 생성자를 하나도 작성하지 않으면 default 생성자가 만들어진다. modifier class 이름(){} Overloading이 가능하다. 객체가 생성(new)되는 시점에 딱 한번 호출한다. 즉, 재사용할 수 없다. public class Test{ public Test(){ // ..

JAVA 2023.03.09

[JAVA] Overloading (+ 객체 생성 개념, static)

🚧 자바 문법으로 보는 객체 생성 public class Player { private int no; private String name; private int age; private String addr; private String deptName; ... } 클래스는 Player에 대한 틀을 만들어준다. Player [] p = new Player[3]; p[0] = new Player(10, "김예린", 28 , "현충로", "KB"); 이때 객체는 new를 통해 생성된다. Player에 대한 배열을 만드는 코드이다. 객체를 생성한다는 것은 Player 1에 대한 계정을 만드는 것과 같다. 이때 객체를 생성할 때 실제 값이 들어가는 것이 아닌 주소값을 할당하는 것이다. 이는 메모리 측면은 고려한 것..

JAVA 2023.03.09

[JAVA] Method

메서드 Method 메서드란 객체의 동작을 뜻한다. 작업을 수행하는 코드의 집합이다. 메서드를 사용하는 이유는 반복적으로 사용되는 코드의 중복을 방지하고, 코드의 양을 줄여 유지 보수가 용이해진다. 메서드 선언부 modifiers returnType method이름( [DataType 변수이름, DataType 변수이름, ...] ){ 기능구현 ; } 메서드는 선언부와 구현부로 나뉠 수 있다. 메서드를 선언할때는 크게 4가지가 있다. modifiers modifiers는 제한자의 의미를 가진다. public: 누구나 어디에서나 접근이 가능하다. protected: 상속관계라면 어디서나 사용 가능하다. (상속관계에서만 사용되는 것은 아님) 생략: 같은 package에서 아무나 접근 가능하다. private..

JAVA 2023.03.08

[JAVA] 반복문 (for, while, do - while, 백준 2439 별 찍기 - 2)

반복문 반복문은 초기화 → 조건식 → 실행 블록 → 증감식 순서로 진행된다. 초기화 사용할 조건값을 초기화한다. 조건식 초기화한 값이 주어진 조건에 맞는지 확인하며 true/false 값을 반환한다. for문은 반복해야 하는 횟수가 지정될 때 주로 사용한다. while문은 반복 횟수 보다는 상황에 의한 반복을 정의할 때 사용한다. do - while문은 while 작업 중 최소 한 번은 실행해야 할 작업이 있는 경우 유리하다. for 문 for문을 사용해서 구구단을 출력해보자. package day01; import java.util.Scanner; public class Gugu { public static void main(String[] args) { Scanner sc = new Scanner(S..

JAVA 2023.03.06

[JAVA] 문법 (변수, 데이터 타입)

기본 문법 클래스 이름의 첫글자는 대문자이다. 메소드 이름, 변수 이름 첫글자는 소문자이다. 메소드는 항상 () 괄호가 붙는다. 단어와 단어가 조합될 때 낙타표기법 사용한다. 상수의 변수는 모두 대문자로 작성한다. static final String HELLO_WORLD = "Hello World"; 상수를 선언할 때는 final을 사용하여 선언한다. static이 붙은 b는 상수이다. 사용자에 의해 변경이 가능하다. final은 변수의 값이 변하지 않고, static은 새로운 메모리에 할당하지 않고 한 메모리에 계속 재사용하겠다는 의미이다. 예약어를 이름 작명에 사용할 수 없다. ex) boolean, char, etc 첫글자는 반드시 영문, _, $로 시작할 수 있고, 두번째부터 숫자가 가능하다. 변..

JAVA 2023.03.06