국비학원 7일차 : 오버로딩, 생성자, git

Digeut·2023년 3월 3일
0

국비학원

목록 보기
7/44

오버로딩

한 클래스 내에서 같은 이름으로 메서드를 여러개 정의하는 것
이미 같은 이름의 메서드가 존재한다 하더라도 매개변수의 타입과
갯수가 다르면같은 이름으로 정의 할 수 있음

오버로딩의 조건

메서드명이 같아야한다
매개변수 개수 혹은 타입이 달라야한다
반환 타입은 오버로딩에 영향을 미치지 않는다.

public class Overloading {

	//int + int = int
	int add(int x, int y) {
		return x + y;
	}
	
	double/*앞의 반환타입은 영향미치지 않는다*/ add(double x, int y) {
		return (int)x + y ;
	} 
    //오버로딩이 되지 않는다면 매번 메서드의 이름을 다 다르게 지어줘야한다.
	//add만 알면 다 적용할 수있고, 부가적인 설명의 추가가 필요없다.
	
	//메서드명과 파라미터의 데이터 타입으로 판단한다!
	//double add(int x, int y)하면 중복으로 인식함
	//double add(int x1, int y1)으로 해도 중복으로 인식함
	
	//매개변수의 데이터 타입이 같고 매개변수의 이름이 다르다고 해도
		//오버로딩은 성립하지 않는다
	
	int add(int x, int y, int z) {
		return x + y + z; //데이터 타입이 같아도 
        //파라미터의 갯수가 다르면 오버로딩 성립한다.
	}
	
	public static void main(String[] args) {
		

	}

}

생성자

인스턴스가 생성될때 호출되는 인스턴스 초기화 메서드
인스턴스 변수의 초기화 작업에 사용
인스턴스 생성 시에 실행되어야 할 작업을 작성하는 위치

생성자의 조건

생성자의 이름은 해당 클래스 명과 같아야한다
생성자는 반환값이 없음!

class Circle {
	double ✅radius; //⭐인스턴스 변수
	double diameter;
	double circumference;
	double area;
	
	//null이나 0으로 초기화 시키고 싶지않으면 직접 생성자 만들면 된다
	
	//생성자 사용 방법
	//클래스명([파라미터[, ...]]){인스턴스 생성시 실행할 코드} 
    //[]안에 있는건 와도 되고 아니여도 된다.
    
	Circle(double 🔴radius){ //파라미터가 없는 경우에도 쓸수 있고, 
    //파라미터를 받아서 쓸수도 있다.
		System.out.println("Circle이 생성됩니다.");
		this.✅radius = 🔴radius; //클래스 기준으로 위에 만든 
        //⭐인스턴스 변수는 전역 변수이다
        //변수는 최대한 모두가 알아보기 쉽게 설정하는게 좋은데
        //지금의 경우에는 인스턴스 변수로 ✅radius가 설정되어있는
        //상태라 변수🔴radius와 같은 이름을 갖게된다 
        //이럴 경우 헷갈릴수있다! -> this 사용해서 인스턴스 변수를 지칭해준다.
        
		//this는 해당 인스턴스를 지칭, 이 인스턴스의 radius를 따라라는뜻
		//this : 인스턴스 자신. this를 하지않으면 매개변수로 
        //받는 radius를 인식하게 된다
		//인스턴스 변수를 지칭하고자 할때는 모든 경우에 다 this를 찍는게 좋다.
        //(초기화 작업을 할때)
		//생성자만들때는 꼭 this 찍어주는게 좋다!
		this.diameter = 2 * radius;
		this.circumference = 3.14 * 2 * radius;
		this.area = 3.14 * radius * radius;
	}
	// 생성자 쓸때 오버로딩이 사용된다!
	// 생성자도 메서드이기 때문에 오버로딩을 적용해서
	// 매개변수에 따라 다른 작업을 수행하게 할 수 있다
    
	Circle(){
		//빈생성자 메서드
		System.out.println("빈 생성자 입니다.");
		this.radius = 10;
		this.diameter = 2 * this.radius;
		this.circumference = 3.14 * this.diameter;
		this.area = 3.14 * this.radius * this.radius;
	}
	
    //매개변수 받는 생성자 메서드
	//생성자를 이용한 인스턴스 복사
	Circle(Circle circle/*참조변수를 매개변수로 받아옴*/) {
		this.radius = circle.radius;
		this.diameter = circle.diameter;
		this.circumference = circle.circumference;
		this.area = circle.area; //하나하나 다 찍어주면 이렇게 복사가된다.
		//복사하고자 하는 인스턴스 변수를 받고자 하는 참조변수에 복사해준다.
	}
}

public class Constructor {

	public static void main(String[] args) {
		
		System.out.println("===생성자==="); //실행되는 위치 확인 위해 
        //이런 코드 사용해서 콘솔에서 생성 위치 파악할수 있다
        
        //빈 생성자 메서드 사용
		Circle circle1 = new Circle();
        /*Circle()생성시 초기화 해주는 메서드 = 생성자*/
        //인스턴스 생성
        
		//매개변수 받아서 사용하는 메서드 사용
		Circle circle2 = new Circle(5);
		
        
		System.out.println("===생성자===");
		
		//기본 생성자가 컴파일러에 의해 추가되는 경우는 
        //클래스에 정의된 생성자가 하나도 없을 때 뿐!
        
        //생성자를 만들어줬으므로 밑에 초기화는 주석처리
//		System.out.println(circle1.radius); //초기화 되어있어서 사용가능
//		circle1.radius = 10; //인스턴스 변수 초기화 작업
//		circle1.diameter = 20;
//		circle1.circumference = 62.8;
//		circle1.area = 314;
		//참조변수의 경우 초기화를 하지 않으면 null값으로 된다 : 사용할 수 없음
		
		System.out.println(circle1.area);
		System.out.println(circle2.area);
		
		//double radius; //초기화 하지 않음
		//System.out.println(radius); 초기화 되지 않아 사용 못한다
	}

}

Git

깃환경 설정하기

$ git config --global user.name "이름"
$ git config --global user.email "이메일"

리눅스 명령어

~ : 현재 홈 디렉터리
$ pwd : 현재 위치의 경로
$ ls : 현재 디렉토리에 어떤 파일이나 디렉터리가 있는지
//ls 명령 옵션
  $ ls -a : 숨김파일과 디렉터리 표시
  $ ls -l : 파일과 디렉터리의 상세정보까지 표시
$ cd .. : 상위 디렉터리로 이동
$ mkdir 파일이름 : 현재 디렉터리 안에 하위 디렉터리 생성
$ rm 파일이름 : 디렉터리 삭제할때 명령어
//rm 명령옵션
  $ rm -r : 디렉터리 파일에 있는 하위 디렉터리와 파일까지 모두 삭제
$ vim 텍스트파일이름.txt : 새로운 텍스트 문서를 만드는 명령
	같은 파일의 이름이 있다면 그 파일을 연다
//vim 명령어
  A 또는 I버튼 눌러서 입력모드로 전환
  ESC 눌러서 종료모드로 전환
  :wq 입력해 저장 및 종료
  :q! 문서를 저장하지 않고 편집기 종료


작업트리 : 파일 수정, 저장등의 작업을 하는 디렉터리, 작업 디렉터리
스테이지 : 버전으로 만들 대기파일이 저장되는 곳, 스테이징 영역
저장소 : 스테이지에서 대기하고 있던 파일들을 버전으로 만들어 저장,
repository

$ git init : git을 사용할 수 있도록 git 초기화
//git 초기화 시, .git 이라는 디렉터리 생성
//.git : git이 저장될 저장소
$ git status : git의 상태를 확인한다
$ git add 텍스트파일이름.txt : 스테이지에 작업트리의 파일을 올린다
$ git commit : 깃에서 파일을 commit한다
//commit 명령 옵션
  $ git commit -m "할말" : 깃에서 커밋할때 저장할 메시지 입력
  $ git commit -am "할말" : 스테이지에 올리고 커밋하는 과정을 한번에 처리
  						   한번이라도 commit한 기록이 있는 파일 다시 commit한다
$ git log : 저장소에 저장된 버전을 확인한다
$ git diff : 작업트리에 있는 파일과 스테이지에 있는 파일을 비교하거나
			 스테이지에 있는 파일과 저장소에 있는 최신 commit을 비교해서
             수정한 파일을 commit하기 전에 최종적으로 확인
profile
개발자가 될 거야!

0개의 댓글