본문 바로가기

Java

(39)
[Java] 23 실습(부모클래스 호출 복습 - 동물 키우기) ​ ※ sleep 메소드 test public class SleepTest { public static void main(String[] args) { System.out.print("시작"); for(int i = 0; i < 5; i++) { System.out.print("~"); try { Thread.sleep(1000); // 5초 멈춤 } catch (InterruptedException e) { System.out.println("오류 발생 시 오는 영역"); } } System.out.println("종료"); } } ​ ​ 1. 부모 클래스(Animal.java) 생성 public class Animal { int hp; // 체력을 저장할 ..
[Java] 22 ● super - 부모클래스를 의미한다. ​ ​ ​ ● 부모클래스에 있는 메소드 호출하는 방법 - super.메소드() ​ ​ ​ ● 부모클래스의 생성자를 호출하는 방법 - super(); - 항상 부모생성자가 가장 먼저 호출되어야 한다. ​ ​ ​ ● instanceof( : 연산자) - 해당 타입의 인스턴스인지 판별해준다. (ex) myCar instanceof Car : myCar는 Car 타입의 instance인가? → 맞으면 true, 틀리면 false ​ ​ ​ ● Object 클래스 - 최상위 클래스 - 자바의 모든 클래스는 Object 클래스를 상속받는다. ​ ​ ​ ● 형변환(casting) 1. up casting - 부모타입에 자식 값을 넣는 문법(자식타입 → 부모타입) ​ 2. do..
[Java] 21 ● 상속 - 기존에 사용하던 클래스의 필드를 새롭게 만들 클래스에서 사용하고 싶을 때 활용하는 문법 public class 자식클래스명 extends 부모클래스명 { 멤버... } ​ ​ ​ ● 메소드 오버라이딩(재정의) - 부모클래스에 존재하는 메소드의 이름과 똑같은 이름으로 메소드를 다시 정의하는 것을 의미한다. - 자식클래스 타입 객체 : 자식에서 재정의된 메소드가 호출된다. - 부모클래스 타입 객체 : 부모에서 정의된 메소드가 호출된다. ​ ​ ​ ● 다형성 1. 오버로딩 - 매개변수의 타입 혹은 갯수가 다르지만 이름이 같은 메소드 ​ 2. 오버라이딩 - 부모필드에 선언된 메소드를 자식에서 같은 이름으로 선언하는 것 ​ ​ ※ @Override - 메소드가 오버라이딩 됨을 설명하는 어노테이션 주석..
[Java] 20 ● 접근 제어자(access modifier) ​ ​ ​ ● ​private 사용 이유 - private을 통해 데이터에 직접 접근하는 것을 방지함으로써 유효한 값만 다룰 수 있고, 어떻게 동작하는지를 외부로부터 감출 수 있다.(데이터 은닉) ​ ​ ​ ● 객체 지향 언어 - 코드가 독립적으로 존재할 수 있도록 지향하는 언어 - 객체라는 개념을 기반으로 한 프로그래밍 패러다임 ​ ​ ​ ● 객체 지향 언어의 특징 - 다형성 : 어떤 한 요소에 여러 개념을 넣어 놓는 것(오버로딩, ...) - 캡슐화 : 데이터와 코드의 형태를 외부로부터 알 수 없게 감추는 방법(데이터 은닉) - 추상화 : 객체의 공통적인 특성을 파악해서 필요 없는 특성을 제거하는 과정 - 상속 : 새로운 클래스가 기존 클래스의 코드를 사..
[Java] 19 ● 클래스 선언 class 클래스명 { 코드; } ​ ​ ​ ● 생성자 - 메소드와 똑같지만 리턴타입이 없다.(이미 기능이 정해져 있기 때문) ​ 1. 기본 생성자(default constructor) - 클래스명() (ex) Studenet() - 클래스 안에 생성자가 정의되어 있지 않다면 컴파일러가 알아서 기본 생성자를 만들어 준다. - 정의된 생성자가 존재한다면 기본 생성자를 자동으로 만들어 주지 않는다. - 직접 정의한 생성자와 기본 생성자를 동시에 사용하고 싶다면 메소드 오버로딩처럼 명시적으로 정의해주어야 한다. ​ 2. 초기화 생성자 - 클래스명(매개변수, 매개변수, ...) - 매개변수로부터 값을 전달받아 인스턴스 변수를 초기화 하는데에 사용할 수 있다. ​ ​ ​ ● this - 자기 자신..
[Java] 18 ● 메소드 오버로딩(overloading) - 메소드의 이름은 같지만 매개변수의 타입이 다르거나 갯수가 다른 경우를 말한다. - 리턴 타입과 매개변수 이름과는 관련 없다. - 다형성(polymorphism)을 구현하는데 사용된다. ​ ※ 다형성(polymorphism) - 객체지향 언어의 4가지 주요 특징 중 하나로, 하나의 클래스나 함수가 다양한 방식으로 동작 가능한 것을 의미한다. - 자바의 다형성을 구현하는 방법 중 하나로 오버로딩이 있다. ​ ​ ​ ● 변수의 생명 주기 1. 지역변수(local variable) - 메소드 안에 선언된 변수로, 변수가 선언된 영역에서만 사용 가능 ​ ※ 메소드를 통해 다른 영역에 존재하는 값 바꾸는 방법 - return을 통하여 값을 복사해서 전달하고, 해당 영역..
[Java] 17 ● 메소드(method) - 이름 뒤에 소괄호() - 어떠한 기능을 한다. ​ ​ ​ ● 메소드 사용 이유 - 코드를 재사용하기 위해 사용한다. ​ ​ ​ ● 메소드 선언 - 클래스 안에서, 메인메소드 밖에서 선언한다. public static 리턴타입 메소드명() { 수행할문장; } ​ ​ ​ ● ​메소드 사용(호출) - 클래스명.메소드명(); ​ ​ ​ ● 매개변수와 return - 리턴타입 부분에는 return 옆에 존재하는 값의 자료형을 써준다. - 함수에 return 존재 : 해당 함수 호출의 결과를 return 옆에 써있는 값으로 간주하고 사용하면 된다. - 매개변수로 받아와야할 값이 있다면 매개변수를 설정한다. - 해당 메소드 사용 결과를 변수에 저장하거나 연산해야하는 경우에는 return을..
[Java] 16 ● 이차원 배열 - 배열 안에 요소로 배열이 있는 배열 ​ ​ ​ ● 이차원 배열의 선언 - 자료형[][] 배열명 = {{값, 값, ...}, {값, 값, ...}, {값, 값,...}, ...}; (ex) int[][] ar = {{1, 2}, {10, 20}, {100, 200}}; - 자료형[][] 배열명 = new 자료형[행][열]; ​ ​ ​ ● ​향상된 for문(빠른 for문, foreach문) - 1.5 버전 이후로 지원되는 문법이다. - 변수에는 배열 속의 요소가 차례대로 담긴다. for(배열요소자료형 변수명 : 배열명) { .... } ​ ​ ※ foreach문 vs 일반for문 - 일반 for문 : 인덱스 번호가 필요한 경우 혹은 배열 안의 값을 수정해야 하는 경우에 사용하면 편리하다...