//////
Search

Git, Interface, List by 조문주

태그
2022/10/05 08:32
사람
최종 편집 일시
2022/10/05 09:37

IntelliJ - Git

IntelliJ에서 Git Push하기

1. 프로젝트 생성
2. VCS → Create Git Repository 생성
3. git add로 staging Area에 올려주기
4.git commit & push 하기
5. push 성공!

Git에서 IntelliJ로 가져오기

1.
원하는 깃허브 Repository의 URL 복사
2.
인텔리제이 메뉴의 Git > Clone 선택
3.
URL에 주소 붙여넣은 후 Clone 버튼 누르기

IntelliJ에 ignore파일 생성하는 방법

IntelliJ에 ignore파일 생성 플러그인 설치후 생성
소스트리에서 생성
파일 커밋해서 빨간색으로 변했을때 파일 우클릭 > git > add to ignore

main 브랜치 생성

settings > version control > git / github에서 연관 설정 가능

인텔리제이 단축키

OOP답게 프로그래밍하기

자바의 원칙들

OOP(Object Oriented Programming)
Class = Object
클래스
값을 한 번만 넣고 여러가지 연산을 할 수 있다.
값을 할당하면서 바로 계산하는 곳에 쓴다.
생성자 : 객체를 생성하면서 넣을 값을 지정한다.
생성자 오버로딩 : 이름은 같지만 매개변수가 다르다. 기본값 등을 줄 때 사용함
객체 지향 프로그래밍 <> 함수(Functional)형 프로그래밍
DI(Dependence Injection) : 의존 관계
DI한다 = 생성자를 이용해 interface 구현체를 넘겨서 초기화시킨다.
다이어그램 : class 간 의존관계를 나타내는 다이어그램을 보고 그릴 줄 알아야 한다
static을 쓰면 ocp 원칙이 많이 깨지게 된다.
변화를 주는 부분은 인터페이스에만 의존한다.
예: 계산은 calculate로 하지만 숫자 생성 로직은 numberCreate라는 구현체에서 진행함.
Pojo(Plain Old Java Project) : 오래된 방식의 간단한 자바 오브젝트
Java EE 와 같은 프레임워크 기술에 종속되어 동작하지 않는 순수한 자바 객체
객체지향적인 원리에 충실하면서, 환경과 기술에 종속되지 않고 필요에 따라 재활용될 수 있는 방식으로 설계된 오브젝트
스프링 프레임워크는 POJO 방식의 프레임워크이다.

non-static과 static

package lecture_1005.calculator; public class Calculator { private int a; private int b; public Calculator(int a, int b){ this.a = a; this.b = b; } public int plus(){ return a+b; } public int minus(){ return a-b; } public int multiple(){ return a*b; } public float divide(){ return (float) a/b; } }
Java
복사
package lecture_1005.calculator; public class CalculatorMain { private int a = 0; private int b = 0; public int plus(int a, int b){ return a+b; } public static void main(String[] args) { plus(10,20); } }
Java
복사
위의 로직은 잘못된 예제이다.
static 메소드는 클래스 영역에 올라가서 공유되기 때문에, 객체를 생성하지 않고도 사용할 수 있다.
그러나, non-static 한 메소드인 plus()는 객체가 생성되는 경우에, heap에 생성되므로객체를 생성한 후에 사용할 수 있다.
따라서, static 메소드에는 non-static한 메소드가 올 수 없다.
static 메소드는 클래스 영역에 올라가서 공유되기 때문에, 객체를 생성하지 않고도 사용할 수 있다.
그러나, non-static 한 메소드인 plus()는 객체가 생성되는 경우에, heap에 생성되므로객체를 생성한 후에 사용할 수 있다.
따라서, static 메소드에는 non-static한 메소드가 올 수 없다.

Class

Calculator 클래스
Calculator클래스를 만들고 plus, minus, multiple, divide 4개의 메소드를 만들어보세요
각 메소드 기능은 + - * /이고 파라메터는 int a, int b 를 받습니다.
Calculator클래스는 psvm만들지 않습니다.
CalculatorMain 클래스에서 실행 해보세요.
실행은 CalculatorMain에서 합니다.
코드
Calculator클래스를 만들고 plus,minus,multiple,divide 4개의 메소드를 만들어보세요
각 메소드 기능은 + - * /이고 파라메터는 int a, int b 를 받습니다.
Calculator클래스는 psvm만들지 않습니다.
CalculatorMain 클래스에서 실행 해보세요.
실행은 CalculatorMain에서 합니다.
위 Calculator(1)의 예제를 생성자를 사용해 작성
코드
위 문제1과 문제2를 비교해보면 문제2의 코드는 변수를 private으로 따로 지정하고 생성자를 만들었다. Main 메소드를 보면 매개변수가 문제 1에서는 매소드마다 들어가지만 문제 2에서는 객체를 생성할때 딱 한번만 들어가는 것을 볼 수 있다.
생성자를 작성하는 이유: 같은 변수가 반복적으로 들어가는 경우에 생성자를 작성하게 되면 한번만 작성해도 되기 때문이다.

RandomCalculator 예제

RandomCalculator 만들기
메소드: plus, minus, multiple, divide
각 메소드는 parameter를 int형 하나만 받습니다.
ex) a + random한 정수 숫자randomNumber는 0~9사이의 정수
divide의 경우 0으로 나누면 Error가 납니다. <-에러처리하기
랜덤한 숫자가 0으로 생성이 되면 “랜덤하게 생성된 숫자가 0입니다.”를 출력하기
코드

Java Collection

collection 이란?

컬렉션 → 데이터를 수집하는 방식
현업에서 원하는 수준 : 위의 알고리즘을 class단위로 구현할 수 있는 정도

List 예제

학생의 이름이 들어있는 list를 return하는 method 만들기
코드