자바 12

자바 - (11) 추상 클래스

추상 클래스 실체 클래스에 반드시 존재해야할 필드와 메소드를 선언한다. 실체 클래스에는 공통된 내용은 빠르게 물려받고, 다른 점만 선언하면 되므로 시간이 절약된다. 출처 : 혼자 공부하는 자바 ​ 추상 클래스는 abstract를 통해서 선언할 수 있다. 예시로 메소드를 추상타입으로 선언하면 자식 클래스에서 재정의해서 실행 내용을 채울 수 있다. 참고로 abstracte void study(); 와 같이 중괄호가 없이 메소드를 작성한다. 출처 : 혼자 공부하는 자바 ​ 실습 문제 실습문제 7-7. (추상클래스) Person 위의 최상위 클래스로 추상클래스 Animal을 구현함. + 추가적으로 7-6의 내용은 이전 자바 포스팅을 참고하면 된다. ​ (1) Animal 클래스에 추상메소드 speak()를 구현..

대학교 2023.11.28

자바 - (10) 타입 변환과 다형성

다형성 사용 방법은 동일하지만 다양한 객체를 활용해 여러 실행결과가 나오도록 하는 성질이다. 출처 : 혼자 공부하는 자바 메소드 재정의는 Override로 저번 포스팅에서 다루었고 이번 포스팅에서는 타입 변환에 대해 다루려고 한다. 자동 타입 변환 출처 : 혼자 공부하는 자바 위와 같이 ( 부모타입 변수 = 자식타입;)과 같은 형태를 사용하면 자동 타입 변환이 일어난다. 당연히 부모로부터 상속받은 것이 자식이기에 자동 타입 변환이 일어난다. 추가로 바로 위 부모가 아니더라도 상속 계층에서 상위 타입인 경우도 자동 타입 변환이 가능하다. 출처 : 혼자 공부하는 자바 ​ 부모 타입으로 자동 타입 변환 이후에는 부모 클래스에 선언된 필드 및 메소드만 접근 가능하다. 예외적으로 메소드가 자식 클래스에서 재정의된..

대학교 2023.11.24

자바 - (9) 상속

클래스 상속 출처 : 혼자 공부하는 자바 부모 클래스에서 private 접근 제한 갖는 것은 상속 대상에서 제외된다. 또한 다른 패키지에 존재할 경우 deafult 접근 제한된 것도 제외된다. 부모 생성자 호출 자식 객체를 생성할 때 부모 객체가 먼저 생성되고 그 다음 자식 객체가 생성된다. 출처 : 혼자 공부하는 자바 출처 : 혼자 공부하는 자바 ​ 명시적으로 부모 생성자를 호출하려는 경우 자식 클래스에서 super를 사용한다. 매소드 재정의 부모 클래스의 메소드가 자식 클래스에서 사용하기에 부적합한 경우 자식 클래스에 수정하여 사용한다. 출처 : 혼자 공부하는 자바 이미 자식 클래스에서 재정의된 메소드를 출력하기 위해 super를 붙여서 부모 메소드를 호출할 수 있다. final 클래스와 final ..

대학교 2023.11.21

자바 - (8) 패키지와 접근 제한자

패키지 위와 같이 클래스 작성 시에 해당 클래스가 어떤 패키지에 속할 것인지 선언해준다. 만약 사용하고자 하는 클래스 또는 인터페이스가 다른 패키지에 소속된 경우는 import를 사용한다. ​ 접근 제한자 클래스와 인터페이스 및 이들이 가진 멤버의 접근 제한을 말한다. ​ public : 외부 클래스가 자유롭게 사용할 수 있다. protected : 같은 패키지 또는 자식 클래스에서 사용할 수 있다. private : 외부에서 사용할 수 없다. default : 같은 패키지에 소속된 클래스에서만 사용 가능하다. ​ 즉 1>2>4>3 순으로 접근 제한이 강화된다. 출처 : 혼자 공부하는 자바 클래스에는 보통 private을 설정하지 않고, 그 안의 생성자와 필드 등에 사용하여 외부에서 접근할 때 임의로 값..

대학교 2023.11.21

자바 - (7) 인스턴스 멤버와 정적 멤버

인스턴스 멤버 클래스에는 필드, 메소드와 같은 멤버가 필요하다. 하지만 클래스 멤버를 객체마다 가지게 되면 엄청난 낭비가 될 수 있다. 물론 객체의 필드값이 다르면 다른 객체를 가져야 하지만 같다면 서로 같은 멤버를 가져도 된다. 이를 자바에서 구분하기 위해 인스턴스와 정적 멤버로 나눈다. ​ 인스턴스 멤버란 객체를 생성한 후 사용할 수 있는 필드와 메소드를 말하는데, 이들을 각각 인스턴스 필드와 메소드로 부른다. 이전에 작성했던 것들은 모두 인스턴스 멤버이다. 출처 : 혼자 공부하는 자바 객체 내부에서 인스턴스 멤버에 접근하기 위해 this를 사용한다. 생성자와 메소드의 매개 변수 이름이 필드와 같을 경우, 필드 임을 지정하기 위해 주로 사용한다. 출처 : 혼자 공부하는 자바 정적 멤버 정적 멤버는 클..

대학교 2023.11.01

자바 - (6) 객체 지향 프로그래밍

객체 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지며 식별 가능한 것 출처 : 혼자 공부하는 자바 객체들은 서로 상호작용할 때 메소드를 사용한다. 아래와 같이 .를 사용해서 메소드를 호출해 서로 상호작용 후 값을 리턴하기도 한다. 출처 : 혼자 공부하는 자바 ​ ​ 출처 : 혼자 공부하는 자바 객체는 개별 사용이 가능하지만, 보통 다른 객체와 관계를 맺으며 사용한다. 집합 관계는 부품과 완성품의 관계이고, 사용 관계는 서로 상호작용하는 것을 말하며, 상속 관계는 부모 객체를 기반으로 자식 객체를 생성하는 관계이다. ​ 여기서 객체 지향 프로그래밍은 집합/사용 관계에 있는 객체를 하나씩 설계 후 조립하여 프로그램을 개발하는 것을 말한다. ​ 클래스 클래스는 자바에서 설계도를..

대학교 2023.10.14

자바 - (5) 참조 타입

참조 타입 출처 : 혼자 공부하는 자바 참조 타입에는 객체, 배열, 클래스 등이 존재한다. 기본 타입 변수와 참조 타입 변수의 차이점은 메모리 사용 영역에 있다. ​ 출처 : 혼자 공부하는 자바 참조 타입 변수의 경우 기본적으로 힙 영역에 주소를 가지며 참조하는 형태로 저장된다. ​ 출처 : 혼자 공부하는 자바 메소드 영역은 클래스 별로 정적 필드, 상수, 생성자 등을 분류해 저장한다. 힙 영역은 객체와 배열이 생성되는 영역이다. JVM 스택 영역은 메소드가 호출되면 프레임이 추가되고, 종료되면 프레임이 제거된다. 출처 : 혼자 공부하는 자바 JVM 스택 영역의 사진이다. 메소드를 호출할 때 스택 영역에 변화를 알 수 있다. 참조 타입 변수의 경우 스택 영역에 힙 영역에 생성된 객체의 주소를 가진다. 참..

대학교 2023.10.06

자바 -(4) 조건문과 반복문

조건문 조건식에 따라 다른 실행문을 실행하기 위해 사용한다. 대표적으로 if, switch문이 있다. 출처 : 혼자 공부하는 자바 if문은 보통 else if와 else를 같이 사용해 여러 조건식을 가진다. ​ 출처 : 혼자 공부하는 자바 switch문도 변수를 기준으로 case로 조건을 나누어 실행문을 진행하는 형태이다. 반복문 어떤 작업을 반복적으로 실행할 때 사용한다. 대표적으로 for, while, do-while문이 있다. 출처 : 혼자 공부하는 자바 for문은 기본적으로 초기값, 조건식, 증감식을 통해 반복을 진행한다. ​ 출처 : 혼자 공부하는 자바 while문은 조건식이 true이면 계속 루프를 돌며 실행문을 반복한다. 중간에 break나 조건식이 false가 되면 while문을 종료한다...

대학교 2023.10.06

자바 -(3) 입 출력, 연산자

출력 출력 : System.out ~ 출처 : 혼자 공부하는 자바 정해진 내용을 출력만 할거면 println 혹은 print 메서드를 사용하고, %d, %f 등의 형식문자열로 출력하려면 printf를 사용하면 된다. 형식 문자열의 예시를 아래와 같다. 출처 : 혼자 공부하는 자바 입력 입력 : System.in ~ 출처 : 혼자 공부하는 자바 read() 메서드를 사용할 경우 2개 이상 키가 조합된 한글을 읽을 수 없다. 그렇기에 Scanner를 자주 사용한다. 출처 : 혼자 공부하는 자바 이를 사용하기 위해서는 import java.util.Scanner;로 불러와줘야 한다. 또한 Scanner를 다 사용했으면 마지막에 close() 해줘야 한다. ​ 추가로 문자열의 값을 비교할 때는 "=="를 사용하..

대학교 2023.09.24

자바 - (2) 기본 타입, 타입 변환

기본 타입 출처:혼자 공부하는 자바 각각 타입마다 저장되는 값의 허용 범위가 다르다. 문자열의 경우는 String이라는 타입을 이용한다. char의 경우는 유니코드를 저장할 수 있다. 그렇기에 문자열을 char 타입에 저장할 수 없다. 출처:혼자 공부하는 자바 자바도 마찬가지로 이스케이프 문자를 사용해서 줄 바꿈, 띄움 등의 기능을 사용할 수 있다. ​ boolean과 같은 논리 타입의 경우는 true, false의 리터럴 값을 저장할 수 있다. 타입 변환 - 자동 타입 변환 : 값의 허용 범위가 작은 타입이 큰 타입으로 저장될 경우 출처:혼자 공부하는 자바 위와 같이 범위에 따라 자동적으로 타입이 변환되는 경우를 말한다. ​ ​ - 강제 타입 변환 : 큰 허용 범위 타입을 작은 허용 범위 타입으로 강제..

대학교 2023.09.18