GitHub

https://github.com/Backcoder-June

BackCoder 기록 그리고 숙달

분류 전체보기 171

A a1 = new B( ); 객체 형변환 , 자동 / 명시적

- 상속관계가 있어야 객체 형변환이 가능하다. class A { } class B extends A { } class C extends A { } class D extends C { } 1. 자동형변환 - 자식이 부모행세 상위클래스 변수명 = new 하위클래스( ); A a1 = new B( ); A a2 = new C( ); A a3 = new D( ); => 자식을 부모행세를 하는 객체로 담는다. 자식이 부모행세 하는건 자동 형변환 가능 부모 : 카톡하기, 메일쓰기 자식 : 카톡하기, 메일쓰기, 결제하기, 쇼핑하기 ( 자식은 이미 부모꺼 다 가짐 + 자기꺼 추가로 가짐 => 부모행세를 충분히 할 수 있다. => 자동형변환 해줌 ) => 대신, 부모행세를 해야해서, 1. 부모한테 없는건 못가져오고 ( ..

Back to the Java 2022.06.30

Merge - fast forward / 3 Way merging 전략

로컬에서 작업하면서 Branch 를 생성해서 작업했다면, 각 branch 별로 기능들 나눠져 있는걸 잘 정리정돈 해서, 하나로 만들어서 Push 해야 한다. 이 정리정돈 해주는 놈이 바로 merge 기능. 명령어는 매우 간단하다. git merge 브랜치이름 보통 로컬도 master 브랜치를 메인으로 쓰기때문에, master 브랜치에다가 나머지 자잘구리한 기능들을 합체 시키는 것이다. ( master 브랜치로 switch 해서 이동한 후에, 자잘구리들을 merge 해준다. ) 근데, 이 자잘구리 Branch 가 하나 일때는 별 문제가 없는데, 2개 이상이 되면, 조금 복잡해진다. *1. 자잘구리 Branch 1개 => "fast-forward merging 전략" (기본 전략) * ma..

Git and GitHub 2022.06.29

Branch 방을 따로 파자

먼저, - 깃허브에서 협업할 상대에게 권한 주고, 같이 push pull 하면서 작업하는 것 ( 깃허브 권한주기 => 해당Repository - setting - collaborator ) 여기에 Branch 가 더해지면서 Git이 꽃을 피운다. Branch : 특정 Commit 을 가리키는 포인터 git push origin master - "origin (깃허브 주소)의 master 브랜치로 push 하겠다" 기본 default 로 생성되있는 브랜치가 master 이고, 보통 서비스에서 이 master 브랜치가 master => "상용" 버전! => download 가능 / 고객에게 제공하는 버전 으로 쓰인다. 새로운 기능개발 /버그, 에러 수정 =>..

Git and GitHub 2022.06.29

Git에 저장하고 Github에 올린다

"분산" + "버전관리" 해주는 시스템 ( 설치해서 사용하는 프로그램 ) 코드가 변화되어온 과정(히스토리)를 수정이 있을 때 마다 저장해줘서 개발되어온 과정 파악을 가능하게 해준다. 이전 버전과의 변경사항 비교 및 분석할 수 있다. => 주 기능 : - 언제누가어떤내용을 수정했는지 표시 - 복원 가능 ( 원하는 시점의 버전으로 돌아갈 수 있다 ) branch 활용 => 버전관리가 각자의 컴퓨터에도 유지가 된다. Local Computer Version DB version 1 ->특정버전으로 남긴다 = 커밋한다 version 2 - 수정사항만 저장 (commit) version 3 - 수정사항만 저장 (commit) version 4 -----> 실제 file // 즉,..

Git and GitHub 2022.06.28

abstract 클래스-메소드 / super 메소드-생성자

=> 클래스/메소드 abstract 메소드 - 선언부만 있고, 구현부 X 메소드 하나라도 abstract 면 클래스도 무조건 abstract abstract class 도형{ abstract void 면적( ); //여기까지만 쓰는게 선언만 하는 것 public void ( ) { sout } } // 다른 일반 메소드 O => abstract 는 "상속" 해서 => 구현 해서 사용한다. 모든 abstract 메소드 구현이 필수 (overriding) class 사각형 extends (abstract)도형{ @Override void (abstract)면적 ( ) { 가로 * 세로 ; } } 여러개의 서로다른 클래스 내부에 필수적으로 구현해야할 공통메소드 정해놓는것 ( 필수구현 보장 ) (각자 필요에 따..

Back to the Java 2022.06.27

상속과 Override, 상속을 막는 final 메소드와 final 클래스.

"클래스"는 extends 클래스 단일상속만 가능 (두개 불가능) "인터페이스"는 extends JpaReposit , StudentReposit { } 동시 상속 가능 //클래스는 단일상속밖에 되지 않는 한계에 대해 해결책 - 면접질문 1. 객체화를 이용한다. 2. 인터페이스로 돌려서 이용한다. 1. 상속해서 사용 ~이다 ( is ) 관계 => 상속을 사용 (ex. 학생은 사람이다 // 즉 완전한 포함관계) 2. 객체생성 해서 사용 가지다 (has) 관계=> 객체화 사용 즉, 특정 기능만 가져오고 싶을때! (ex. 운전자는 자동차의 특정 기능만 가진다. O => 객체 O) - 상,하위클래스 동일명 변수 존재하면 하위클래스(현재클래스)에서 선언된 변수가 우선..

Back to the Java 2022.06.27

클래스 안의 클래스 Inner class <- Outer class 에게 허락을 맡아라

class B{ } 만들어두면 다른 클래스들에서 모두 B b1 = new B( ); 객체 생성해서 쉽게 사용가능 근데 일단은 나만 쓰고 싶다. 다른 클래스에스 쓰고싶으면 나한테 허락맡고 쓰게하고싶다? => 내부클래스로 만들면 된다. class Outer{ int i = 10; class Inner { int j = 20; void innermethod( ){ System.out.println(j); } } static class Inner2{ static int k =30; } //outer 메소드 void outermethod(){ class Inner3{ //지역변수로 쓰이는 이너클래스. => 이 메소드 내부에서만 사용 가능 int n = 40;} } } < Inner class..

Back to the Java 2022.06.27

생성자 Constructor / vs GetterSetter / this

class Member{ public Member( ){ } //생성자 (기본생성자) default 값 => 이게 있어야 클래스로 객체 생성할때 (생성자) Member m1 = new Member( ); this ( id, name, pay, "부서이동중", "발령이전" ); //현재클래스의 다른 생성자 호출해서 재사용 5개 꽉차있는 다른 생성자로 가져와라 ) .title VS .getTitle(); 엔티티에서 private 로 설정해두면 그 안에서만 .title 사용가능 다른 클래스에서 객체로 가져와서 사용할때는 .title 불가능 대신 가져올수 있는 방법을 메소드로 열어놓음 그게 getTitle 게터. Getter Setter 으로 하면 객체의 각 부분별로 뽑아서 쓸 수 있다 - 장점 하지만, 객체 ..

Back to the Java 2022.06.24