[Java] 메서드 오버라이딩
Dev/Java2022. 7. 11. 23:03[Java] 메서드 오버라이딩

부모 클래스가 자식 클래스에게 상속 할 때에는 필드 뿐만 아니라 메서드까지 넘겨준다. 만약 부모 클래스의 메서드가 자식 클래스에 맞게끔 설계되어 있지 않다면, 이 메서드를 다시 수정해 줄 필요가 있다. 이러한 경우에 사용하는 것이 바로 메서드 오버라이딩 이다. public class Fruit{ public void introduce(){ System.out.println("I'm fruit"); } } public class Apple extends Fruit{//Fruit의 자식 클래스 Apple public void introduce(){//Fruit의 introduce 메서드를 오버라이딩을 통해 재정의 했다. System.out.println("I'm apple"); } } lFruit은 Appl..

[Java] 클래스 상속
Dev/Java2022. 7. 8. 23:10[Java] 클래스 상속

상속 Java에서 상속은 현실에서 부모가 자식에게 물려주는 상속이랑 매우 유사하다. 상송을 통해 부모 클래스의 멤버를 자식 클래스에게 물려줄 수 있다. 클래스를 재사용해서 새로운 클래스를 만들기 때문에 시간과 코드의 중복을 줄여주기 때문에 보다 효율적이다. class Product{ int count; String color; } class CellPhone extends Product{ String name; } CellPhone클래스는 Product 클래스를 상속 받는다. 따라서 CellPhone의 멤버로는 Product클래스의 멤버인 count와 color를 기본적으로 가지면서, 추가적으로 따로 선언해주었기 때문에 name 필드도 가진다. class CellPhone extends Product, ..

[Java] 객체 생성과 필드
Dev/Java2022. 7. 4. 23:31[Java] 객체 생성과 필드

객체 생성 클래스를 완성시킨 다음, 객체를 생성할 때는 new ( )를 사용한다. new는 클래스로부터 객체를 생성시키는 연산자로, new 연산자 뒤에는 생성자가 온다. new 연산자를 사용하면 힙 영역에 객체를 생성한 뒤, 객체의 주소를 클래스 타입의 변수에 저장한다. //클래스 변수 = new 클래스(); public class Student{ }//클래스 선언 Student s1 = new Student(); Student s2 = new Student(); Student 클래스는 하나이지만 new 연산자를 사용한만큼 객체가 메모리에 생성된다. 비록 같은 클래스로부터 생성되었지만 s1, s2 각각의 객에는 자신만의 고유 데이터를 가진다. 즉, s1과 s2가 참조하는 Student 객체는 완전히 독립..

[Java] 객체 지향 프로그래밍의 특징
Dev/Java2022. 7. 4. 22:57[Java] 객체 지향 프로그래밍의 특징

객체 지향 프로그램의 특징으로는 캡슐화, 상속, 다형성 이 세가지를 들 수 있다. 이들 특징은 추후에 학습을 하다 보면 자연스레 알게 되지만, 개념부터 먼저 살펴보고자 한다. 캡슐화 캡슐화란 객체의 필드, 메소드를 하나로 묶고 실제 구현 내용을 감추는 것을 의미한다. 따라서 외부의 객체는 객체 내부의 구조를 알지 못하고 객체가 노출시키는 필드와 메소드만 이용 가능하다. 이러한 특징은 외부의 잘못된 사용으로 인해 객체가 손상되는 것을 방지하기 위한 목적이다. 자바에서는 캡슐화된 멤버의 노출 여부를 접근 제한자를 통해 결정한다. 나중에 살펴볼 접근 제한자는 객체의 필드와 메소드의 사용 범위를 제한한다. ex) 클래스 내에서만 이용 상속 상속이란 우리가 흔히 알고 있듯이 부모가 가지고 있는 것을 자식에게 물려..

[Java] 배열
Dev/Java2022. 7. 2. 18:28[Java] 배열

변수는 한 개의 데이터만 저장할 수 있다. 그렇기 때문에 만약 변수 100개를 선언하고 각 변수의 합을 구해야 한다면,, 정말 귀찮은 일임이 분명하다. 이럴 때 유용하게 사용할 수 있는 것이 바로 배열이다. 배열이란 같은 타입의 데이터를 연속된 공간에 나열시키고, 각 데이터에 인덱스를 부여해 놓은 자료구조이다. 배열을 사용하기 위해서느는 우선 배열 변수를 선언해줘야한다. " 타입 [ ] 변수 ; " 또는 " 타입 변수 [ ] ; " 대괄호 [ ]는 배열 변수를 선언하는 기호로, 타입 뒤나 변수 뒤에 붙을 수 있다. 타입은 배열에 저장될 데이터 타입을 말한다. int[] intArray; String strArray[]; 이러한 배열 변수는 참조 변수에 속한다. 다른 객체들과 마찬가지로 배열도 힙 영역에 ..

[Java] 객체 / 클래스 (0)
Dev/Java2022. 6. 29. 22:48[Java] 객체 / 클래스 (0)

객체는 자신의 속성을 가지고 있고 다른 것과 식별 가능한 것을 말한다. 예를 들면 자동차, 자전거, 피자, 학과, 강의 등이 모두 객체가 될 수 있다. 이러한 객체는 속성과 동작으로 구성되어 있다. 예를 들자면 TV리모컨은 색깔, 크기와 같은 속성을 가지고 볼륨키우기 줄이기 전원 끄기 켜기 같은 동작을 가진다. 객체에서는 이러한 속성과 동작을 각각 필드, 메소드라고 부른다. 그리고 이런 객체에 대한 설계도를 클래스라고 한다. 즉 클래스는 특정 종류의 객체들을 찍어내는 틀이라고도 할 수 있다. ex) 클래스 = 와플기계, 객체 = 와플 하나의 클래스로 여러개의 객체, 즉 인스턴스를 찍어내지만 인스턴스 각각의 속성의 값은 모두 다르다. 클래스를 선언하는 방법은 다음과 같다. 먼저 클래스 이름을 정하고 그 이..

[Java] for 반복문
Dev/Java2022. 6. 27. 23:03[Java] for 반복문

for문은 주어진 횟수만큼 실행문을 반복 실행할 때 적합한 반복 제어문이다. for문의 구조는 다음과 같다. for (초기화식;조건식;증감식){ 실행문 } 제일 먼저 초기화식에서 변수를 선언하며 값을 대입해 초기화하고 조건식을 평가해, 실행문을 실행한다. 블록 내부의 실행문들을 모두 실행하면 증감식을 실행하여 변수를 1만큼 증감하고, 다시 조건식을 평가한다. 조건식이 true이면 실행문을 실행, false이면 실행하지 않고 반복을 끝낸다. for (int i=1 ; i

[Java] Switch 조건문
Dev/Java2022. 6. 27. 22:43[Java] Switch 조건문

switch문은 if 문과는 다르게 변수가 어떤 값을 가지느냐에 따라 실행문이 선택된다. 만약 괄호 안의 값과 동일한 값을 가지는 case가 없으면, default로 가서 실행문을 실행시킨다.(생략가능) import java.util.random(); public class switchExample{ public static void main(String[] args){ int num = (int) (Math.random()*6) + 1; //난수 발생 random() switch (num){ case 1: System.out.println("1번") break; case 2: System.out.println("2번") break; case 3: System.out.println("3번") break;..

[Java] if 조건문
Dev/Java2022. 6. 26. 20:27[Java] if 조건문

if 문은 조건식의 결과에 따라 해당 블록의 실행 여부가 결정된다. 조건식에는 true 또는 false 값을 산출할 수 있는 연산식이나, boolean 변수가 온다. 조건식이 true 면 블록을 실행하고, false이면 실행하지 않는다. if (조건식){//python과는 다르게 조건식에 괄호 ()를 입혀줘야한다. 실행문; 실행문; ... } 중괄호 { } 블록은 실행문이 한줄일 경우 생략 가능하지만, 가독성과 버그 발생 방지를 위해 쓰는 것을 권장한다. public class IfExample{ public static void main(String[] args){ int score = 93; if (score>=90){ System.out.println("점수가 90보다 큽니다"); } } } 위 예..

[Java] 타입변환
Dev/Java2022. 6. 25. 20:46[Java] 타입변환

타입변환에는 두가지 종류가 있다. 묵시적(자동) 타입변환, 그리고 명시적(강제) 타입 변환이다. 자동 타입 변환 자동 타입 변환은 메모리의 크기가 작은 타입이 큰 크기의 타입에 저장될 때 발생한다. 먼저 크기별로 정수 및 실수 타입을 정리하자면 다음과 같다. byte(1) < short(2) < int(4) < long(8) < float(4) < double(8) * float는 4 바이트 이지만 long과 int보다 표현할 수 있는 범위가 크다. 자동 타입 변환이 발생되면 전과 후의 값은 동일하다. int intValue = 200; double doubleValue = intValue; intvalue는 정수 200이지만, doubleValue에 저장되면 200.0으로 저장된다. char charV..

image