Java(39)
-
[Java] static
static 계속 이어서 설명 (복습) ======== 오늘날짜 프로젝트 만들기 JAVA0224 - Ex.java 만들기 static이 붙은 메서드에 대해 알아보자. ⇒ 실행은 잘 되는데 노란 밑줄 그임. (정석적인 접근 방법이 아님!) 정상 적인 접근 방법(클래스명.메서드()) → 결과는 같다 > static 메서드도 변수처럼 인스턴스 생성과 관계없이 클래스명만으로 접근 가능 이렇게 인스턴스 생성 전인 위쪽으로 옮겨도 실행 된다! (오류 안남) > static 변수는 한놈이 바뀌는 순간 나머지도 다 바뀜! (이것만 주의하면 된다) static 메서드는 제약이 걸림 → 밑에서 더 알아볼 거! 메서드 선언 시 리턴타입 앞에 static 키워드를 붙여서 정의 클래..
2022.10.05 -
[Java] instanceof 연산자/다형성/자바프로그램실행과정/static
p260 형변환을 처리하다가 java.lang.ClassCastException을 발생 ⇒ 뭔가 해선 안되는 변환을 했다고 알려주는 오류! 좌변의 객체(참조변수)가 우변 클래스의 타입인지 판별하는 연산자 (=실제 메모리에 있는 객체가 특정클래스 타입인지를 boolean 타입으로 리턴) 판별 결과가 true 이면 형변환이 가능한 관계(업캐스팅 또는 다운캐스팅) 판별 결과가 false 이면 절대로 형변환 불가능 형변환을 바로 수행하지 않고, instanceof 연산자를 통해 검사 후 수행하는게 안전하다 if(A instanceof B) {} ⇒ A 는 참조변수, B 는 클래스명 ======== 오늘날짜 프로젝트 만들고 Ex.java 만들기 - in 까지만 ..
2022.10.05 -
[Java] 형변환(Type Casting) - 업캐스팅/다운캐스팅
p.234 지난시간 폴더(JAVA0217)에 ======== test3.java 만들기(p.234랑 똑같이 치기) 생성자 자동생성 Alt + Shift + S → O 했을 때 나오는 창. 지금은 Person2(String) 타입만 있음. Person2() {} 만 적어줬는데 생성자 만들 때 Person2() 가 생김! 부모랑 똑같은거 하나 만들어줌 ======== Ex.java 만들기 p.254 (다형성) 참조형 변수(레퍼런스타입 변수)끼리의 형변환 업캐스팅(Upcasting) 과 다운캐스팅(Downcasting) 으로 나뉨 참조형 변수로 다른 타입의 인스턴스를 참조하기 위해 변환하는 것 1. 업캐스팅(Upcasting) 슈퍼클래스의 레퍼..
2022.10.05 -
[Java] 메서드 오버라이딩(Overriding)
Getter / Setter 단축키 Alt + Shift + S → R 생성자 단축키 Alt + Shift + S → O Import 단축키 Ctrl + Shift + O 오버라이딩 단축키 Alt + Shift + S → V ======== 오늘날짜 프로젝트 만들고 Ex.java 만들기 p. 225 슈퍼클래스로부터 상속받은 메서드와 시그니쳐(이름, 파라미터 등)가 완벽하게 동일한 메서드를 새롭게 재정의하는 것 ⇒ 기존의 부모의 메서드를 자식이 새롭게 수정하는 것 오버라이딩 후 슈퍼클래스의 메서드는 은닉되어 보이지 않는다. 상속이 전제되어야 함 메서드 시그니쳐(이름, 파라미터 타입, 파라미터 갯수, 리턴타입)가 동일해야함 접근제..
2022.10.05 -
[Java] 상속(Inheritance)
======== Ex.java 만들기 p.218 is-a 관계가 성립하는 객체간의 관계 슈퍼클래스의 모든 멤버를 서브클래스에서 물려받아 선언없이 사용하는 것 슈퍼클래스(Super Class) = 부모 클래스 = 상위 클래스 = 조상 클래스 서브클래스(Sub Class) = 자식 클래스 = 하위 클래스 = 자손 클래스 생성자 및 private 접근 지정자가 선언된 멤버는 상속 대상에서 제외됨 자바는 단일 상속만 지원함 별도로 상속 대상을 지정하지 않을 경우 Object 클래스를 자동으로 상속받는다. ⇒ java.lang.Object 클래스는 모든 클래스의 최상위 클래스라고 한다. class 서브클래스명 extends 슈퍼클래스명 {} < Ex.ja..
2022.10.05 -
[Java] 패키지(package) / import
p.212~ 간단 설명 ======== Ex7.java 만들기 (package 설명) p.236 윈도우에서의 폴더, 리눅스에서의 디렉토리에 해당하는 개념 자바의 클래스 파일들을 모아놓은 공간 ⇒ 서로 다른 패키지에는 같은 이름의 클래스가 각각 존재할 수 있다! (같은 이름의 파일이 서로 다른 폴더에 존재하는 것과 동일) 자바에서 패키지를 사용하면, 실제 폴더가 패키지로 구분됨 특정 클래스 파일은 하나의 패키지에'만' 소속되어야 함 특정 클래스 파일의 맨 첫 번째 라인에 해당 클래스가 소속된 패키지명을 명시 실제 클래스 파일이 위치하는 패키지와 다를 경우 오류 발생 소스 코드의 첫번째 라인(주석 제외)에서만 사용 가능한 키워드 ⇒ 클래스 내에서 단..
2021.01.23