1. IntelliJ에서 git push하기
1. IntelliJ에서 git push하기
1.
github에 Repository만들기
2.
IntelliJ에 자바 프로젝트 생성 후 코드 작성
3.
IntelliJ 상단 VCS탭에 Create Git Repository 클릭
4.
왼쪽 프로젝트이름이 빨갛게 변했는지 확인
5.
왼쪽 탭에 Commit 클릭
6.
커밋메세지 작성후 commit 클릭
7.
IntelliJ의 Git 탭에 Manage Remotes클릭
8.
+버튼 클릭해서 github Repository 주소 넣어서 추가하기
9.
git 탭에 push 클릭
2. 메인 branches에 Repository 만들기
1.
1번의 1)~8)까지 그대로하고 오른쪽 밑에 master 브런치 클릭 후 main브런치 새로 생성
2.
push클릭
3. IntelliJ에 ignore파일 생성하는 방법
•
IntelliJ에 ignore파일 생성 플러그인 설치후 생성
•
소스트리에서 생성
•
파일 커밋해서 빨간색으로 변했을때 파일 우클릭 > git > add to ignore
2. Class
1. java에서 할수 있는 실수
public class Hello {
public void plus(int first, int second){
System.out.println(first + second);
}
public static void main(String[] args){
plus(10, 20); //오류
}
}
Plain Text
복사
•
push가 안되는 이유: 객체를 생성하지 않았기 때문
•
Hello hello = new Hello(); 코드를 추가하고 실행하면 오류가 나지 않는다.
•
클래스를 만들었을때 보통 main클래스를 따로 만들어서 사용함
2. 생성자를 사용하는 이유
•
문제(1)
◦
Calculator클래스를 만들고 plus,minus,multiple,divide 4개의 메소드를 만들어보세요
◦
각 메소드 기능은 + - * /이고 파라메터는 int a, int b 를 받습니다.
◦
Calculator클래스는 psvm만들지 않습니다.
◦
CalculatorMain 클래스에서 실행 해보세요.
◦
실행은 CalculatorMain에서 합니다.
public class Calculator {
public void plus(double num1, double num2){
System.out.println(num1+num2);
}
public void minus(double num1, double num2){
System.out.println(num1-num2);
}
public void multiple(double num1, double num2){
System.out.println(num1*num2);
}
public void divide(double num1, double num2){
System.out.println(num1/num2);
}
}
Plain Text
복사
public class CalculatorMain {
public static void main(String[] args) {
Calculator cal = new Calculator();
cal.plus(10,15);
cal.minus(10,15);
cal.multiple(10,15);
cal.divide(10,15);
}
}
Plain Text
복사
•
문제(2)
◦
위 Calculator(1)의 예제를 생성자를 사용해 작성하시오.
public class Calculator {
private int a;
private int b;
//생성자 추가 할때: alt + insert
public Calculator(int a, int b){
this.a = a;
this.b = b;
}
public void plus(){
System.out.println(a+b);
}
public void minus(){
System.out.println(a-b);
}
public void multiple(){
System.out.println(a*b);
}
public void divide(){
System.out.println((float)a/b);
}
}
Plain Text
복사
public class CalculatorMain {
public static void main(String[] args) {
Calculator cal = new Calculator(10, 20);
cal.plus();
cal.minus();
cal.multiple();
cal.divide();
}
}
Plain Text
복사
•
위 문제1과 문제2를 비교해보면 문제2의 코드는 변수를 private으로 따로 지정하고 생성자를 만들었다. Main 메소드를 보면 매개변수가 문제 1에서는 매소드마다 들어가지만 문제 2에서는 객체를 생성할때 딱 한번만 들어가는 것을 볼 수 있다.
•
생성자를 작성하는 이유: 같은 변수가 반복적으로 들어가는 경우에 생성자를 작성하게 되면 한번만 작성해도 되기 때문이다.
3. RandomCalculator 만들기
•
문제(1)
◦
RandomCalculator를 만들어 보세요
◦
메소드: plus, minus, multiple, divide
◦
각 메소드는 parameter를 int형 하나만 받습니다.
◦
ex) a + random한 정수 숫자randomNumber는 0~9사이의 정수
◦
divide의 경우 0으로 나누면 Error가 납니다. <-에러처리하기
◦
랜덤한 숫자가 0으로 생성이 되면 “랜덤하게 생성된 숫자가 0입니다.”를 출력하기
public class RandomCalculator {
private int randomNumber = (int)(Math.random()*9);
private int a;
public RandomCalculator(int a){
this.a = a;
}
public void plus(){
System.out.println(a + randomNumber);
}
public void minus(){
System.out.println(a - randomNumber);
}
public void multiple(){
System.out.println(a * randomNumber);
}
public void divide(){
if(randomNumber != 0){
System.out.println((float) a / randomNumber);
}else{
System.out.println("0으로 나누면 Error가 납니다.");
}
System.out.printf("랜덤한 숫자는 %d 입니다", randomNumber);
}
}
Plain Text
복사
public class RandomCalculatorMain {
public static void main(String[] args) {
RandomCalculator randomcalculator = new RandomCalculator(10);
randomcalculator.plus();
randomcalculator.minus();
randomcalculator.multiple();
randomcalculator.divide();
}
}
Plain Text
복사
•
문제(2)
◦
randomNumber생성하는 로직은 interface를 이용해 DI하기
public interface NumberCreator {
//그냥 숫자를 넘겨주는 인터페이스
int create(int num);
}
Plain Text
복사
public class RandomNumberGenerator implements NumberCreator{
@Override
public int create(int num) {
return num;
}
}
Plain Text
복사
public class Calculator {
NumberCreator numberCreator;
private int baseNum;
public Calculator(NumberCreator numberCreator) {
this.numberCreator = numberCreator;
this.baseNum = 10;
}
public Calculator(NumberCreator numberCreator, int baseNum) {
this.numberCreator = numberCreator;
this.baseNum = baseNum;
}
public void plus(int num){
System.out.println(num + numberCreator.create(baseNum));
}
}
Plain Text
복사
public class Main {
public static void main(String[] args) {
Calculator calculator = new Calculator(new RandomNumberGenerator());
calculator.plus(10);
}
}
Plain Text
복사
4. 자바의 원칙들(SOLID)
•
OOP(Object Oriented Programming) <-> 함수형(Functional) 프로그래밍:객체 지향 프로그래밍, class = object, 모든것을 클래스 기반으로 만듦
•
DI(Dependency Injection): 의존성 역전:DI한다 -> constructor를 이용해 interface 구현체를 넘겨서 초기화 시킨다
•
Pojo(Plain Old Java Object):extends -> EJB
•
IoC(Inversion of Control):DI랑 비슷
3. Java Collection
1. collection 이란?
•
컬렉션 -> 수집
•
verctor는 현재 잘 사용하지 않는다.
2. List
•
문제(1)
◦
사람 이름이 들어있는 list를 return 하는 method 만들기
package collection;
import java.util.ArrayList;
import java.util.List;
public class Names {
private List<String> students = new ArrayList<>();
public List<String> names(){
this.students.add("권하준");
this.students.add("조성윤");
this.students.add("안예은");
this.students.add("남우빈");
this.students.add("최경민");
this.students.add("안준휘");
this.students.add("하채민");
this.students.add("허도한");
this.students.add("배태훈");
this.students.add("정해성");
this.students.add("하찬희");
this.students.add("박도아");
this.students.add("유경준");
this.students.add("고다니");
this.students.add("하이안");
this.students.add("고유호");
this.students.add("전민찬");
this.students.add("배강");
this.students.add("유서이");
this.students.add("황도빈");
this.students.add("강규진");
this.students.add("임예린");
this.students.add("양예온");
this.students.add("곽윤재");
this.students.add("한단");
this.students.add("박강현");
this.students.add("윤성민");
this.students.add("박재윤");
this.students.add("서현준");
this.students.add("노유주");
this.students.add("전율");
this.students.add("노아린");
this.students.add("권아윤");
this.students.add("송태서");
this.students.add("정라온");
this.students.add("서서한");
this.students.add("문주호");
this.students.add("오세아");
this.students.add("이호영");
this.students.add("손윤아");
this.students.add("이동우");
this.students.add("남혜준");
this.students.add("황솔");
this.students.add("권은재");
this.students.add("곽준휘");
this.students.add("양시현");
this.students.add("김지훈");
this.students.add("신서아");
this.students.add("노도형");
this.students.add("허선");
this.students.add("노지아");
this.students.add("신아인");
this.students.add("양시은");
this.students.add("노석현");
this.students.add("손강준");
this.students.add("백주안");
this.students.add("강단우");
this.students.add("오나은");
this.students.add("오한겸");
this.students.add("백예준");
this.students.add("노은우");
this.students.add("손도헌");
this.students.add("전진우");
this.students.add("안주하");
this.students.add("백다은");
this.students.add("유민기");
this.students.add("노휘");
this.students.add("박채원");
this.students.add("강다겸");
this.students.add("신여준");
this.students.add("허은유");
this.students.add("심서후");
this.students.add("유준이");
this.students.add("전민승");
this.students.add("강예은");
this.students.add("허로이");
this.students.add("유유진");
this.students.add("권건하");
this.students.add("하도이");
this.students.add("노도원");
this.students.add("문하성");
this.students.add("오시후");
this.students.add("이로윤");
this.students.add("노지후");
this.students.add("권채이");
this.students.add("전담");
this.students.add("하태율");
this.students.add("노다율");
this.students.add("장우솔");
this.students.add("황하준");
this.students.add("조담호");
this.students.add("백민우");
this.students.add("김시진");
this.students.add("박유담");
this.students.add("이해성");
this.students.add("전현성");
this.students.add("권유겸");
this.students.add("강서현");
this.students.add("문찬율");
this.students.add("한도현");
return this.students;
}
}
Plain Text
복사
package collection;
import java.util.ArrayList;
import java.util.List;
public class LikeLion2th {
//이름이 들어있는 list를 return 하는 method
private List<String> students = new ArrayList<>();
public LikeLion2th(){
Names names = new Names();
this.students = names.names();
}
public List<String> getStudentList(){
return this.students;
}
}
Plain Text
복사
package collection;
import java.util.List;
public class ListPracticeMain {
public static void main(String[] args) {
LikeLion2th likeLion2th = new LikeLion2th();
List<String> students = likeLion2th.getStudentList();
for(String student : students){
System.out.println(student);
}
System.out.println(students.size());
}
}
Plain Text
복사