• Method(메서드)
    • public class Student {
      	public int modifyStudent() {
          	return 0;
          }
      }
    • 생성자와 비슷하게 생겼지만 리턴 타입이 있고 클래스 이름과 동일한 것이 아닌 작동에 대해 작명을 해줘야 한다
    • 메서드란 어떠한 동작을 한다고 생각을 해보면 좋을듯 하다.
    • 메서드는 재료를 받아서 내부적으로 어떠한 동작을 하고 결과물을 반환해준다
    • 위의 그림처럼 쌀, 밥솥, 물이라는 재료를 밥 짓기라는 메서드에 넣어주면 쌀밥이 나온다. 여기서 쌀, 밥솥, 물은 매개변수이고, 밥 짓기는 매소드 내부에서 쌀, 밥솥, 물이라는 매개변수를 사용해서 쌀밥이라는 결과물을 내기 위한 동작을 실행하는 부분이며, 쌀밥은 리턴 값이 된며 리턴 타입은 밥이 되는 것이다.
    • 리턴 값과 리턴타입의 관계를 보면 쌀밥은 밥이라는 큰 카테고리 안에 들어갈 수 있다. 매개변수로 쌀이 아니라 보리를 넣는다면 보리밥이 나오지만 밥이라는 큰 카테고리는 같다.
  • 매개변수와 리턴값
    • 경우의 수는 4가지가 있다
      1. 매개변수가 있고 리턴 값이 없는 경우
      2. 매개변수가 있고 리턴 값이 있는 경우
      3. 매개변수가 없고 리턴 값이 없는 경우
      4. 매개변수가 없고 리턴 값이 없는 경우
    • 이렇게 4가지의 경우가 있다
    • 리턴 값에는 여러 가지가 올 수 있다. 너무 다양하고 많지만 몇 가지 예시를 들자면
      • void : 리턴 값이 없는 경우 사용된다
      • int, double, char, byte, boolean 등 기본 타입 : 기본 타입의 값을 리턴해줄 수 있다
      • String, List, 객체 등 참조 타입 : 객체, 클래스 등 모든 참조 타입으로도 반환이 가능하다
    • 매개변수를 받아와야 하는데 메서드를 작성하는 시점에 몇 개의 매개변수를 받아와야 할지 모르는 경우 혹은 계속 개수의 변경이 있어야 한다면 배열로 받아올 수도 있다
  • 메서드 오버 로딩
    • 오버 로딩 방법은 생성자와 같으며 리턴 타입의 변경은 의미가 없다
  • 메서드의 호출
    • 해당 클래스를 통해 인스턴스를 생성해주고 생성된 인스턴스를 통해서 메서드를 호출해준다
    • public class StudentTest {
      	public static void main(String[] args) {
      		Student s1 = new Student("홍길동", 90, 89);
      		
      		int s1Score = s1.getTotalScore();
      	}
      }
      
      class Student {
      	public String name;
      	public int korScore;
      	public int engScore;
      
      	
      	public Student(String name, int korScore, int engScore) {
      		this.name = name;
      		this.korScore = korScore;
      		this.engScore = engScore;
      	}
      
      
      	public int getTotalScore() {
      		return korScore + engScore;
      	}
      }
    • 메서드를 호출해서 리턴 타입에 맞는 변수에 저장해서 사용이 가능하다

'Back-end > JAVA' 카테고리의 다른 글

20. Class - final(상수)  (0) 2021.07.24
19. Class - 멤버와 패키지, 접근 제한자  (0) 2021.07.24
17. Class - Constructor(생성자)  (0) 2021.07.24
16. Class - Field(필드)  (0) 2021.06.23
15. Class - 객체와 클래스  (0) 2021.06.22
  • Constructor(생성자)
    • 객체 생성 시에 초기화를 담당한다
    • new연산자로 호출되는 중괄호 블록이다
    • 클래스 이름과 생성자의 이름은 동일해야 한다
    • 생성자가 하나라도 있으면 Default생성자는 컴파일 단계에서 자동으로 생성되지 않으며 Default생성자가 필요하다면 생성자 오버 로딩을 통해 Default생성자를 생성해줘야 사용이 가능하다
    • public class Student {
      	public Student() {
          	
          }
      }
    • 객체 생성 시 사용하는 new연산자에서 소괄호 안에 넣어줄 매개 변수를 생성자에서 설정해 줄 수 있다
    • 생성자를 작성하지 않으면 컴파일 시에 default생성자가 만들어지며 위의 코드와 똑같이 만들어진다
    • 메서드와 동일하게 생겼지만 반환 값이 없고 클래스 이름과 동일한 것이 특징이다
    • 생성자를 여러 개 생성할수 있다
      • 생성자를 여러개 만들어주는 것을 생성자 오버 로딩이라고 하며 매개변수의 타입, 개수 또는 타입과 개수가 모두 다른경우 오버로딩이 가능하다
      • 불가능한 경우
        • public class Student {
          	public int num;
              public String name;
              public int age;
              public int regNo;
              
          	public Student (int num, int age) {
              	this.num = num;
                  this.age = age;
              }
              
              public Student (int num, int regNo) {
              	this.num = num;
                  this.regNo = regNo;
              }
          }
        • 위와 같이 매개변수에 들어가는 값의 개수가 같을 때 같은 타입이면 오류가 생긴다
        • 오버 로딩 시에는 매개변수의 변수명은 중요하지 않으며 타입과 개수가 다른 것이 중요하다
      • 가능한 경우
        • public class Student {
          	public int num;
              public String name;
              public int age;
              public int regNo;
              
          	public Student (int num, int age) {
              	this.num = num;
                  this.age = age;
              }
              
              public Student (int num, String name) {
              	this.num = num;
                  this.name = name;
              }
          }
        • 위의 경우에는 매개변수의 개수는 같지만 타입이 다르기 때문에 오버 로딩이 가능하다
    • this
      • 위의 코드를 보면 모두 생성자 안에서 this라는 키워드를 사용해줬는데 자기 자신을 뜻한다
      • 생성자를 보면 매개변수로 받아오는 변수의 이름이 필드의 변수 이름이랑 같다. 일반적으로 위와 같이 작성을 해주는데 그때 필드가 가지고 있는 변수와 매개변수로 받아오는 변수를 구분해주기 위해 this라는 키워드를 사용할 수 있다.
      • this는 생성된 인스턴스 자신을 가리키는 키워드로 Student클래스로 A와 B라는 인스턴스를 생성했을 때 A의 this는 A가 가지고 있는 필드와 메서드, 생성자를 가리키고, B의 this는 B가 가지고있는 필드와 메서드, 생성자를 가리킨다.

-팀원 추가

저장소에 들어가면 저장소 이름 밑에

위와 같은 내비게이션이 있을 것이다. Setting을 눌러주자

왼쪽의 Manage access를 누르고 오른쪽에 표시해둔 Invite a collaborator를 눌러주자

 

해당 repository에 파일을 올릴 수 있는 사람을 지정해 줄 수 있다.

상대방의 GitHub 닉네임으로 검색이 가능하다.

검색 후에 add 버튼을 눌러주자

Invite a collaborator버튼이 있던 자리에 위의 이미지와 같이 멤버가 추가된 것을 볼 수 있다.

pending invite를 눌러서 추가한 사람에게 링크를 보내주고 링크를 받은 사용자가 수락하면 해당 repository를 공유할 수 있다.

링크를 받은 사용자가 GitHub에 로그인 후에 링크로 접속하면 다음 이미지와 같은 화면이 나온다.

Accept를 눌러주면 정상적으로 연결이 완료되며 commit을 할 수 있게 된다.

사용자 삭젠는 우측에 휴지통 모양을 누르면 된다.

 

-commit내용 확인

지금까지의 commit내용들을 확인하고 싶다면 간단하게 확인이 가능하다.

repository에 접속 후

빨간색으로 표시한 부분을 눌러주면 된다.

지금까지의 commit사항과 클릭해서 들어가면 어떤 코드가 수정되었는지 확인이 가능하다.

 

-저장소 삭제

삭제하고자 하는 저장소에서 Settings > Options로 들어가서 제일 하단까지 스크롤을 내려준다.

그중에 제일 아래 있는 Delete this repository를 눌러 삭제를 진행해주면 된다.

삭제 진행 시에 저장소의 이름을 다시 입력을 받는다.

빨간색으로 표시된 부분에 글씨만 조금 더 두껍게 돼있다.

저 부분을 그대로 밑에 입력을 해주고 버튼을 누르면 저장소가 제거가 된다.

'Git & GitHub' 카테고리의 다른 글

Step 2  (0) 2021.10.20
Step 1  (0) 2021.10.20
3. Git 업데이트 및 내려받기  (0) 2021.07.11
2. Git 초기화 및 업로드  (0) 2021.07.11
1. GitHub 가입, Git 다운로드 & 설치  (0) 2021.07.10

-Update

지난 포스팅에 이어서 만들어둔 테스트 폴더에 다른 java파일을 추가해서 업데이트를 진행해보도록 하겠다.

먼저 바탕화면 테스트 폴더에 java파일을 하나 추가해주자

 

이렇게 파일을 하나 추가해주고 깃 명령어를 입력한다.

  1. git add .
  2. git commit -m "second commit"
  3. git push origin master

git bash를 이용해서 푸시를 해주고 github페이지로 가서 확인을 해보면 업로드가 되어있을 것이다.

빨간색으로 표시해 둔 곳이 최근 커밋한 내용 시간 등이 나와있다.

지난 포스팅에서 add. 명령어와 중복에 대해 말을 했었는데 위의 예제를 보면 알 수 있다.

Git Bash에서 add . 명령어로 모든 파일을 올리겠다고 했지만 새롭게 추가된 test2 파일만 올라간 것을 확인할 수 있다.

 

- Clone

파일을 다운로드하는 방법에 대해서 알아보도록 하자.

먼저 secondeTest폴더를 새로 생성해준다.

실습을 위해 컴퓨터를 구매할 수 없으니 first 폴더와 second 폴더를 각각 다른 컴퓨터라고 생각을 하고 실습을 진행한다.

 

Code버튼을 누르면 밑에 창이 하나 열린다. 표시해둔 네모 박스를 찾아 누르면 복사가 완료된다.

이제 바탕화면에 생성해둔 second폴더에 우클릭 후 git bash here로 git을 열어준다.

하단에 다운로드로 받아올 수도 있지만. git폴더가 생성되지 않는다. 꼭 포스팅에 제시된 방법으로 진행하자.

 

git clone 명령어를 통해 가져온 주소의 저장소를 해당 폴더에 복사하겠다는 뜻이며, 주소 맨 뒤에 한 칸 띄우고 입력해준 마침표는 해당 폴더에 압축을 풀겠다는 뜻이다.

기본적으로 clone을 해서 가져오면 repository의 이름으로 폴더가 하나 생성되며 그 안에 압축이 풀린다.

하지만 지금은 새로운 폴더를 만들어놓고 그 안에 압축을 풀 것이기 때문에 뒤에 한 칸 띄우고 마침표를 붙여준다.

이상 없이 클론이 잘 완료되었다.

클론을 할 경우 해당 폴더에는. git폴더 혹은 다른 파일이 존재하면 안 된다.

오류가 날 경우 폴더가 비워져 있는지 한번 확인을 해보면 좋을 것 같다.

 

클론이 끝난 뒤 폴더에 들어가면 first폴더와 똑같이 파일이 다운로드하여져 있을 것이다.


-Pull

말 그대로 당겨온다는 뜻이다.

first와 second에는 같은 저장소가 연결이 되어있다.

first에서 수정해서 commit 한 사항을 second에서 받아올 수 있는데 이때 second에서 받고는 작업을 pull이라고 한다.

 

먼저 first폴더에 가서 파일을 하나 추가해주도록 하자.

새로 test 3 파일을 생성해 주었다.

업로드 진행

GitHub페이지에서는 업로드가 완료된 것을 확인할 수 있다.

하지만 second폴더에는 새로운 사항이 반영되지 않았기 때문에 바로 second폴더에도 변경사항을 반영해 주도록 하자.

 

second 폴더에서 GitBash를 열고 git pull 명령어를 입력해주기만 하면 끝이다.

second폴더에 잘 생성이 되었다.

 

주의할 점은 삭제 후 commit을 하고 다른 곳에서 pull로 내려받았을 때 자동으로 삭제를 해주지 않는 점을 주의하자.

'Git & GitHub' 카테고리의 다른 글

Step 2  (0) 2021.10.20
Step 1  (0) 2021.10.20
4. 팀원 추가, commit 내용 확인, 저장소 삭제  (0) 2021.07.11
2. Git 초기화 및 업로드  (0) 2021.07.11
1. GitHub 가입, Git 다운로드 & 설치  (0) 2021.07.10

-Git & GitHub사용법

이번 포스팅에서는 가장 기본적인 사용법만 포스팅을 할 예정이다.

먼저 GitHub Repository를 생성하는 작업을 한다.

 

-Repository

저장소라는 뜻 그대로 소스코드를 저장할 공간을 만들어주는 과정이다.

먼저 GitHub에 로그인을 한다.

첨부 1

첨부 1에 빨간색 네모를 보면 플러스 버튼이 있다.

플러스 버튼을 누르면 메뉴가 나오는데 New repository를 눌러 새로운 repository를 만들러 가보자.

첨부 2

  • 첫 번째 박스
    • Owner : 저장소는 여러 명이 공유를 할 수 있다. 팀장? 쯤으로 생각하면 될 것 같고 혼자 쓴다면 디폴트로 두면 된다.
    • Repository name : 저장소의 이름을 정할 수 있다. / 명명 규칙은 따로 존재하지는 않지만 어떠한 프로젝트인지 알아보기 쉽게 정하는 것이 좋다.
    • Owner, name은 필수사항이다.
  • 두번째 박스
    • 저장소의 설명을 적을 수 있다.
    • Optional이기 때문에 필수는 아니다.
  • 세 번째 박스
    • Public : 누구든 올려둔 소스코드를 보거나 다운로드할 수 있다.
    • Private : 설정해둔 팀원들 외에는 올려둔 소스코드를 보거나 다운로드할 수 없다.
  • 네 번째 박스
    • Add a README file : README.md파일을 올리면 저장소 페이지에서 소스코드에 대한 상세 설명 등을 노출시킬 수 있는 기능이다. mark down이라는 문법 규칙을 통해 html과 비슷하게 디자인을 할 수 있지만 이번 포스팅에서는 다루지 않겠다
    • Add. gitignore : gitignore라는 확장자의 파일을 추가해주는 것인데 보안상 올리면 안 되는 소스코드들을 따로 빼서 commit시에 안 올라가게 할 수 있다.
    • Choose a license : 라이선스를 표시할 수 있는데 이번 포스팅에서는 다루지 않겠다.

이번 포스팅에서는 간단하게 테스트를 하기 위해 firstTest라는 이름으로 repository를 생성하겠다.

작성할 부분을 다 작성하고 create repository를 눌러 생성을 해주면

첨부 3

첨부 3과 같은 화면이 출력됬다면 GitHub사이트에서의 준비는 끝났다.

잠시 창을 최소화 해두고 바탕화면으로 가서 새로운 폴더 하나를 생성해준다.

첨부 4

테스트를 위해 사용할 자바 파일을 아무거나 하나 가져온 뒤 폴더에 넣어준다.

첨부 5

다시 바탕화면으로 나가서 폴더를 우클릭해준다.

Git Bash Here을 눌러주면 Git CLI창이 열린다.

Git Bash를 직접 열어서 cd 명령어를 통해 폴더 위치를 찾아가도 되지만 귀찮다..... 그렇기 때문에 첨부 5의 방법으로 열면 귀찮게 디렉터리를 찾아가지 않아도 폴더의 위치가 지정된 CLI가 열린다.

첨부 6

첨부 6과 같이 GitHub홈페이지와 Git Bash를 열어준다.

빨간색의 내용을 노란색에 하나하나 옮겨주면 세팅이 완료된다.

  1. git init
    • 해당 폴더를 github에 올릴수 있도록 초기화를 해준다.
    • 폴더를 들어가보면 .git파일이 생성되었다.
    • 생성된 게 보이지 않는다면 보기 탭에서 숨김 항목에 체크를 해주면 숨김 폴더가 나올 것이다.
    • 기본적으로. git폴더는 하나의 폴더에 하나만 있어야 하며 사용자가 임의로 다른. git폴더를 합치거나 삭제를 하면 오류가 발생한다.
  2. 홈페이지에는 안 나와있지만 사용자 정보를 입력해줘야 한다.
    • git config (--global) user.name "name"
    • git config (--global) user.email "email"
    • 위의 두 개를 입력해주면 된다.
    • --global은 옵션이다. 작성을 해줄 경우 해당 컴퓨터의 모든 곳에서 지금 입력한 사용자로 등록을 해준다는 것이다. 폴더별로 따로 사용자를 등록해주고 싶다면 해당 옵션을 사용하지 않아도 되지만 개인 컴퓨터라면 그냥 입력해주는 게 편하다.
    • name은 편한 이름을 써도 좋지만 git과 같은 이름을 사용해주자.
    • email은 github 이메일을 사용해줘야 한다.
  3. git add .
    • 폴더 안에 있는 파일을 올릴 준비를 해준다.
    • 이 과정에서 어떤 파일을 올릴지 선택해 줄 수 있는데 프로그래밍을 해보셨다면 알 수 있듯이 파일이 한두 개 생성되는 게 아니다. 
    • .(마침표)를 뒤에 붙여주면 폴더 내에 모든 파일을 올린다는 뜻이다.
    • 꼭 add뒤에 한 칸을 띄우고 마침표를 입력해 줘야 한다.
    • 이미 올라가 있는 파일에 대한 걱정은 하지 않아도 된다.
      • 올렸을 때 수정되거나 새로 생성된 파일만 새로 업로드를 해주고 그렇지 않은 파일은 업로드되지 않고 그대로 유지되기 때문에 자료의 중복이 생길 걱정은 없다. 그냥 항상 전체를 올려주자
      • gitignore를 사용해 올리면 안 되는 파일을 걸러낼 수 있지만 후에 포스팅하도록 하겠다.
  4. git commit -m ""
    • 올릴 파일들에게 메시지를 남겨줄 수 있다.
    • 무조건 작성을 해줘야 하며 큰따옴표("") 안에 작성을 해주면 된다.
    • 보통 어떤 부분이 수정이 되고 추가 · 삭제되었는지 확인 가능하게 올려준다.
    • 한글도 가능하지만 영어를 추천한다.
    • 순서대로 했다면 아래 첨부한 이미지와 같은 내용이 출력되었을 것이다.
  5. git remot add.....
    • 생성한 repository와 폴더를 연결해주는 명령어다.
    • 그냥 그대로 긁어서 Git Bash에 넣어주면 된다.
    • ctrl + v는 사용할 수 없다. 우클릭 후 페이스트 혹은 키보드의 insert키로 붙여 넣고 엔터를 쳐주자.
    • 이 작업은 처음 생성했을 때만 해주면 후에는 다른 repository를 만드는 게 아니라면 사용할 일이 없다.
  6. git push
    • 연결된 저장소에 파일을 올리는 명령어다.
    • git push origin master로 이렇게 수정해서 입력해주도록 하자.
    • 이유는 후에 포스팅을 통해 하겠다. 지금은 그냥 이렇게 하면 저장소에 파일과 commit내용이 올라간다고만 알고 있자.
    • 명령어를 입력하면 github 로그인을 요청하는 창이 하나 뜰 건데 위쪽의 홈페이지로 가는 버튼을 누른 후 초록색 버튼으로 access 해주자.
    • 그 뒤에 다시 Bash로 돌아가면 아래 코드가 나온다.
    • 위와 같은 코드가 나오면 완료된 것이고 GitHub페이지를 리로드 해보면 올라가 있는 파일을 볼 수 있다.

※중간에 보면 branch라는 부분이 있다. commit다음에 나와있는 부분인데 처음 배우는 과정에서는 생략하도록 하겠다.

간단히 설명을 하고 넘어가자면 말 그대로 가지를 나누는 것이다. 저장소에 파일을 올려줄 때 버전을 나눠서 올려주고 나중에 합치는 작업등을 할 수 있지만 지금 레벨에서 하기에는 벅차다고 생각한다.

'Git & GitHub' 카테고리의 다른 글

Step 2  (0) 2021.10.20
Step 1  (0) 2021.10.20
4. 팀원 추가, commit 내용 확인, 저장소 삭제  (0) 2021.07.11
3. Git 업데이트 및 내려받기  (0) 2021.07.11
1. GitHub 가입, Git 다운로드 & 설치  (0) 2021.07.10

- Git, GitHub이 뭔가요?

프로그래밍을 하면 많은 소스파일들이 생긴다.

 

java의 경우 여러 패키지에 여러 클래스를 작성한. java파일이 있을 것이고 프런트엔드의 html, css, JavaScript 파일들 또한 많은 파일이 만들어진다.

 

혼자서 작업을 한다면 USB 또는 외장하드 등을 이용해 백업과 폴더를 나눠서 버전 관리 등을 해줄 수도 있겠지만

팀 단위로 작업을 하게 되거나 버전이 많이 변경될 가능성이 있으며, 그 버전을 통합하는데 어려움이 있다면 Git과 Github를 이용해 소스코드를 관리해주는 것이 좋다.

 

-Git

Git이란 내 컴퓨터에서 GitHub이라는 저장소에 자료를 올릴 수 있도록 해주는 프로그램을 말한다.

 

CLI (Command Line Interface; 검은색 배경에 흰색 글씨가 써진, 프로그래머만 사용할 것 같은 화면을 말한다.) 혹은

GUI (Graphical User Iterface; 아이콘 등을 눈으로 확인해가면서 CLI에 비해 직관적으로 사용이 가능하다.)

이렇게 두 가지로 사용을 할 수 있지만 이 글에서는 CLI를 사용하겠다.

 

-GitHub

쉽게 말해서 네이버 클라우드, 아이클라우드 등을 생각하면 될 것 같다. Git을 통해서 설정한 Repository에 저장을 할 수 있으며 소스코드를 웹에서 바로 확인하고 Commit 내용 등을 확인할 수 있다.

 

-GitHub 가입

*이 글을 읽는 시점에 따라 GitHub 홈페이지의 UI는 변경이 될 수도 있다.

첨부 1

Google에서 GitHub을 검색하면 첨부 1과 같은 페이지에 접속이 가능하다

그 뒤 빨간색 사각형으로 표시돼있는 Sign up버튼을 눌러 회원가입을 진행하자.

첨부 2

지금 UI는 우주 콘셉트인 듯하다 e-mail을 입력해주자

*Email is invalid or already taken : 이미 사용 중인 이메일입니다.

모두 작성을 해주고 Create account를 누르면

첨부 3

첨부 3과 같이 이메일에서 인증코드를 받아오라고 한다.

코드를 입력하면 가입이 완료된다.

 

-Git 다운로드 및 설치

구글에 Git이라고 검색을 하면 공식 홈페이지가 나오지만 귀찮은 여러분을 위해 링크를 하단에 첨부한다.

https://git-scm.com/

 

Git

 

git-scm.com

첨부 4

빨간색으로 표시된 다운로드 버튼을 눌러주자

다운로드가 완료되면 exe파일을 열어서 설치를 실행해주면 된다.

*설치는 모두 디폴트로 진행을 하면 된다.

이 파트에서 사용하는 IDE(통합 개발 환경)에 연결을 해서 사용을 해줄 수 있다.

사용하는 IDE가 있다면 이곳에서 선택을 해주면 된다.

모두 디폴트 값으로 Next를 계속 누르고 Install이 끝난 후에 View Release Notes선택을 해제하고 Finish를 누른다.

이것으로 회원가입과 설치를 끝냈다.

'Git & GitHub' 카테고리의 다른 글

Step 2  (0) 2021.10.20
Step 1  (0) 2021.10.20
4. 팀원 추가, commit 내용 확인, 저장소 삭제  (0) 2021.07.11
3. Git 업데이트 및 내려받기  (0) 2021.07.11
2. Git 초기화 및 업로드  (0) 2021.07.11

-Field(필드)

  • Class블록 안에서 변수를 선언해주는 부분
  • 초기화도 할수 있지만 특별한 경우가 아니면 초기화 없이 선언만 한다
  • Field, Method, Constructor 모두 위치가 정해져 있는 건 아니지만 상단에  Field, 중간에 Constructor, 하단에 Mehtod를 작성해주는 것이 일반적이다
  • Field에서 선언해주는 변수를 맴버변수라고 부르며 외부에서도 값을 가져오거나 변경이 가능하다
  • public class Test {
    	//Field
        String str;
        int num;
        boolean flag;
    }
  • 변수의 타입은 기본타입부터 레퍼런스 타입까지 모두 선언과 사용이 가능하다
  • public class TestExample {
    	public static void main(String[] args) {
    		Test test = new Test();
            
    		System.out.println(test.str);
    		test.str = "Hello";
    	}
    }
  • 위의 코드와 같이 main이 들어간 TestExample클래스에서 Test 클래스를 불러와서 출력하거나 변경하는 것이 가능하다.
  • Field에서 선언한 변수들의 초기값은 앞선 포스팅에 나와있듯이 기본타입은 0, 0.0, false 등이고 참조 타입의 기본값은 모두 null값으로 초기화된다.
  • 변수의 사용은 인스턴스 변수, 즉 test뒤에. 을 붙여 사용해주면 된다.
  • Test Class를 사용해 여러 개의 인스턴스(객체)를 생성했을 때 각 인스턴스 별로 갖고 있는 메모리의 주소 값이 다르므로 동일한 내용이 들어있다 해도 각 인스턴스 안에 변수는 다른 값을 가지고 있다.
  • public class TestExample {
    	public static void main(String[] args) {
    		Test test1 = new Test();
    		Test test2 = new Test();
            
    		test1.str = "Hello";
    		System.out.println(test2.str);
    	}
    }
  • 위와 같이 코드를 작성했을 때 test2.str의 값은 null이 나오게 된다.
    • test 1.str의 주소와 test2.str의 주소가 다르기 때문에 이런 결과가 나오게 되는데 만약 test 1과 test2의 주소가 같은 주소를 참조한다면 test2.str 또한 Hello가 되었을 것이다.
    • 이를 통해 인스턴스 생성 시 각각의 인스턴스는 다른 주소 값에 새로 생성된다는 걸 알 수 있다.
  1. 수학적 함수
    • ABS(n) : n의 절댓값 반환
    • SIGN(n) : n의 부호에 따라 양수이면 1, 음수이면 -1, 0이면 0을 반환
    • COS(n), SIN(n), TAN(n) : 삼각함수의 값 반환
    • SQRT(n) : n의 제곱근 반환
    • POWER(n, a) : n의 a승 값
    • EXP(n) : 지수 함숫값
  2. GREATEST(n1, n2 [, n3,....]), LEAST(n1, n2[, n3, ....])
    • 주어진 자료에서 가장 큰 값(GREATEST), 작은 값(LEAST)을 찾아 반환
  3. ROUND(n1 [, n2]), TRUNC(n1 [, n2])
    • ROUND : 주어진 수 n1의 소수점 이하 n2 + 1번째 자리에서 반올림
    • TRUNC : 주어진 수 n1의 소숫점 이하 n2 + 1번째 자리부터 절삭(반올림되지 않음)
    • n2가 음수이면 정수 부분의 n2자리에서 반올림(ROUND)또는 절삭(TRUNC) / 0으로 반환
      • -1, -10, -100 순으로 1, 10, 100의 자리가 됨
    • SELECT ROUND(123.456, 1) FROM DUAL;
      //출력 : 123.5
      SELECT ROUND(567.899, -2) FROM DUAL;
      //출력 : 600
      SELECT TRUNC(123.456, 1) FROM DUAL;
      //출력 : 123.4
      SELECT TRUNC(567.899, -2) FROM DUAL;
      //출력 : 500
      • n2가 음수, 양수에 관계없이 ROUND는 올림, TRUNC는 버림이 된다.
  4. MOD(n1, n2)
    • n1을 n2로 나눈 나머지를 반환한다
    • SELECT MOD(10, 3) FROM DUAL;
      //출력 : 1
  5. REMAINDER(n1, n2)
    • n1을 n2로 나눈 나머지를 반환한다
    • SELECT REMAINDER(10, 3) FROM DUAL;
      //출력 : 1
    • MOD와 REMAINDER 모두 나머지를 반환하지만 내부적으로 동작하는 방식이 다르다
    • 일반적으로는 MOD를 많이 사용한다
  6. WIDTH_BUCKET(n1, min, max, block_cnt)
    • 하한 값 min과 상한 값 max로 정한 구간을 block_cnt개수의 블록으로 나누었을 때  n1이 속한 구간 순번을 반환
    • min, max값은 반대로 대입도 가능하다
    • 아래의 코드는 참고를 위해 조인과 케이스 등을 사용하였지만 대략적인 사용방법만 알고 넘어가도록 하자
    •   SELECT A.EMP_NAME AS 사원명,
               C.DEPARTMENT_NAME AS 부서명,
               B.JOB_TITLE AS 직무명,
               A.SALARY AS 급여,
               CASE WHEN WIDTH_BUCKET(A.SALARY, 2000, 20000, 3)=1 THEN
                         '저임금 사원'
                    WHEN WIDTH_BUCKET(A.SALARY, 2000, 20000, 3)=2 THEN
                         '평균임금사원'
                    ELSE
                         '고임금사원'
                    END AS 비고
          FROM HR.EMPLOYEES A, HR.JOBS B, HR.DEPARTMENTS C
         WHERE A.DEPARTMENT_ID=C.DEPARTMENT_ID
               AND A.JOB_ID=B.JOB_ID
      ORDER BY 4;
    • 위와 같이 출력이 되며 급여를 기준으로 3구간으로 나눠서 저임금, 평균임금, 고임금 사원으로 나눈 결과이다.

'DataBase > Oracle' 카테고리의 다른 글

11. Function - 변환함수  (0) 2021.07.24
10. Function - 날짜 함수  (0) 2021.07.24
8. Function - 문자열 함수  (0) 2021.06.22
7. 연산자(Operator)  (0) 2021.06.18
7. 자료형(Data type)  (0) 2021.06.17

+ Recent posts