2025/03 7

[JAVA] 다형성(2) - abstract, 인터페이스

추상 클래스- 이름 그대로 추상적인 개념을 제공하는 클래스이다. 따라서 실체인 인스턴스가 존재하지 않는다. 대신에 상속을 목적으로 사용되고 부모클래스 역할을 담당한다.abstract class A { ...}- 추상 클래스는 클래스를 선언할 때 abstract 키워드를 붙인다.- new A()처럼 직접 인스턴스를 생성하지 못하는 제약이 추가된 것 추상 메서드- 부모 클래스를 상속 받는 자식 클래스가 반드시 오버라이딩 해야 하는 메서드를 부모 클래스에 정의할 수 있다. 이름 그대로 추상적인 개념을 제공하는 메서드 따라서 실체가 존재하지 않고 메서드 바디가 없다.public abstarct void sound();- 추상 메서드는 메서드 앞에 abstarct 키워드를 붙인다.- 추상 메서드가 하나라도 있는 ..

JAVA 2025.03.30

[JAVA] 다형성(1) - 다형성 참조, 캐스팅, instanceof 연산자

다형성프로그래밍에서 한 객체가 여러 타입의 객체로 취급할 수 있는 능력-> 하나의 객체가 다른 타입으로 사용될 수 있다. 다형적 참조-> 자바에선 부모는 자식을 품을 수 있다.ex) Parent poly = new Child();- Parent Poly는 부모 타입이고 new Child()를 통해 생성된 결과는 Child 타입이다.- 반대로 자식 타입은 부모 타입 못 담는다. Child child1 = new Parent(); 오류 발생- 자식 밑에 자식 즉 ,손자 타입이 있다면 그 하위 타입도 참조 가능 Parent poly = new Parnet()Parent poly = new Child() //Parent 자식Parent poly = new Grandson() //Child 자식 캐스팅 (Cast..

JAVA 2025.03.23

[JAVA] 상속

■ 상속extends 키워드를 사용하고 대상은 하나만 선택 가능하다. ex) Animal , Pet 부모 클래스 둘 중 하나만 선택해야함. 두 개오면 뭘 불러와야 할 지 모름class Dog extends Animal Pet Car 클래스는 부모클래스이고 GasCar는 자식 클래스이다.public class Car { public void move() { System.out.println("차를 이동합니다."); } }public class GasCar extends Car { public void fillUp() { System.out.println("기름을 주유합니다."); } }public class CarMain { public static void m..

JAVA 2025.03.20

[JAVA] final

final- 변수에 final 키워드가 붙으면 더는 값을 변경할 수 없다. ■ final 변수public class A { public static void main(String[] args) { fianl int data1; // final 지역 변수 data1 = 10; //최초 한번만 할당 가능 final int data2 = 10; //final 지역 변수2 method(10); } static void method(final int parameter) { //parameter = 20; 컴파일 오류 } } - final 붙은 지역 변수는 최초 한 번만 값을 할당할 수 있고, 값을 변경하게 되면 에러 발생 - 필드(멤버..

JAVA 2025.03.16

[Git] reset, revert, stash

■ reset과거 커밋 지점으로 이동하고 이동된 이후의 커밋은 삭제하는 명령어-> 로컬의 commit 내용을 변경하고자 할 때 사용 1) git reset -hard: 해당 commitID의 상태로 이동하고,  깔끔한 리셋 (모두 초기화)  2) git reset -mixed: 해당 commitID의 상태로 이동하고, 원하는 커밋으로 이력을 되돌리긴 하지만, 이 다음에 추가했던 모든 변경사항을 작업공간(Workig Diretory)는 변경되지 않음 3) git reset -soft: mixed와 비슷하지만 스테이지 영역이 위에 있는지 아래에 있는지 차이. mixed는 변경사항을 스테이지 아래로 둬서 위로 올리지 말지 고민할 수 있지만, soft는 변경사항을 스테이지 위로 둬서 다시 당장 커밋할 수 있 ■..

Git 2025.03.09

[Git] amend, cherry-pick

■ amend개발해서 커밋을 만들었는데, 추가할 파일이 있다는 걸 늦게 알았다. 커밋을 수정하기 위해서 사용하는 명령어-> 수정 못한 파일이 있는데 방금 만든 커밋에 추가하고 싶다. 1) git commit --amend : 메시지를 수정vi 편집이 켜지면 수정하고 git log로 변경사항 확인 2) git commit --amend -m : 메시지 수정 화면을 통해 잘못된 메시지를 수정할 수 있지만, 커밋 메시지를 바로 수정git log로 변경 되었는지 확인  ■ cherry-pick깃허브를 통해 형상관리를 수행하며 개발하다보면, 실수로 커밋을 다른 브랜치에 하게 되어 문제가 발생하는 경우가 있다.(예시:  A브랜치에 커밋해야할 걸 B브랜치에 한 것) 이럴 때 체리픽 사용-> 다른 브랜치에 커밋 된 내..

Git 2025.03.08

[JAVA] static 변수, static 메서드

■ static 변수- 객체 생성 없이 사용할 수 있는 필드와 메소드를 생성하고자 할 때 - 공용 데이터에 해당하거나 인스턴스 필드를 포함하지 않는 메소드를 선언하고자 할 때- "클래스이름.필드"로 사용할 수 있다.1) 인스턴스 변수 - static이 붙지 않은 멤버 변수 ex) name - static이 붙지 않은 멤버 변수는 인스턴스를 생성해야 사용할 수 있음. - 인스턴스를 만들 때마다 새로 만들어야 함 2) 클래스 변수 (정적 변수) - static이 붙은 멤버 변수 ex) count - static이 붙은 멤버 변수는 클래스에서 바로 접근해 사용 가능하고 클래스 자체에 소속 되어있음 ■ static 메서드1) 클래스 메서드 (정적 메서드) - static이 붙은 메서드 - 인스턴스 생성 없이 클..

JAVA 2025.03.01