관심있는 주제/Java 26

Extends, super

우리는 상속이라는 것을 통해서 사용하는 클래스에 직접 메소드를 추가하지 않아도 추가한 메소드를 사용할 수 있다. 아래의 예제를 보면 Second 라는 클래스와 Third 라는 클래스가 있다.나는 Info라는 함수를 하용하면서 동시에 Infonot도 사용하고 싶다.만약 내가 Second라는 함수를 수정할 수 없는 상황이라면 아예 새로운 클래스를 정의하여 확장을 통해 Infonot을 사용할 수 있다.여기서 Third를 자식 클래스 Second를 부모 클래스라고 한다. 이때 Third가 Second를 상속한다 또는 확장한다 라고 표현한다. - Extend상속의 효과 : 코드의 중복을 피할 수 있다. 재활용성이 높다. 유지보수가 편리하다. 가독성이 높아진다. - super super를 통해서 부모 클래스에 있는..

전역변수 / 지역변수

- 전역 변수(global variable) : method 밖에서 선언하는 변수 static : 전역으로 사용이 가능main method 밖에서 static int i 를 선언했다. method 밖에서 선언했지만 변수가 static 이기 때문에 메인 메소드 안에서 호출했을 때값을 출력할 수 있게 된다.만약 static 이라고 하지 않은 상태에서 호출한다면 아래와 같이 에러가 난다. (static 메소드 안에서 i 를 찾을 수 없기 때문에) 이렇게 static 을 선언하면 다른 곳에서 변수를 사용할 수 있게 된다.method 에서도 마찬가지로 사용이 된다.method a() 를 static 으로 선언했다. 메인에서 실행시키는데 무리가 없다. 그렇다면 static을 빼면 어떻게 될까 ?아래에서 볼 수 있듯..

클래스

클래스 : 객체를 만들기 위한 일종의 설계도인스턴스 : 그 설계도에 따라서 만든 구체적인 제품 재활용성, 유지보수의 편의성, 가독성 등이 좋아질 수 있도록 중복을 제거해야 한다. 그렇기 때문에 클래스와 메소드를 활용한다.예를 들어, 내가 평균을 구하고 싶다고 해보자.이런 식으로도 메인에서 평균 값을 출력할 수 있다. 하지만 코드가 점점 길어질 수록 이런 방법은 효율성이 떨어진다.이번에는 같은 class에 mean이라는 함수를 만들어 보았다.아까보다는 보기 좋아졌다. 하지만 이런 경우도 결국 mean이라는 함수에 int값을 매번 넣어줘야 하는 번거로움이 있다. 만약에 내가 mean이외에도 덧셈, 뺄셈을 하고 싶을 때 일일이 값을 넣어주는 것은 굉장히 번거롭다. 그리고 오류가 날 가능성이 크다. 그래서 하나..

Scanner

Scanner를 사용하려면 일단 import를 해야 한다.맨 위에 import java.util.Scanner; 를 해준다. (package 아래에)나는 귀찮아서 그냥 import java.util.*; 를 사용한다.*는 util안에 있는 라이브러리를 모두 불러온다는 뜻이다. new Scanner를 통해 Scanner 를 만들다. System.in은 내가 값을 입력하겠다는 의미라고 보면 된다.i를 숫자로 받기 위해 nextInt();를 사용했다. 이거 외에도 next(); nextLine(); 등등이 있고 sc. 을 치면 리스트가 쭉 뜬다. (궁금하면 오라클 api에서 확인할 수 있다.)마지막에 scanner를 닫아준다. 만약 입력값을 계속 받고 싶다면 반복문을 이용한다.hasNextInt() 는 말 그..

메소드

메소드는 영어로 method 라고 하며 다른 언어에서는 함수라고도 한다. 메소드를 이해하고 싶다면 메소드의 정의 부분보다는 입력값과 출력값을 먼저 이해하는 것이 좋다. 그후에 메소드의 정부를 보는 것이 이해하는데 큰 도움이 된다. 가장 대표적인 예로 main method를 들 수 있다. numbering() 이라는 메소드를 만들어 보았다. 그걸 main에 호출해서 실행하면 numbering() 메소드가 실행이 되고 while문이 돌아가서 저런 0~9 값이 출력이 된다. 같은 class 안에 있는 메소드는 저런식으로 쉽게 불러올 수 있다. -만약 메소드가 없다면 ?메소드가 없는 상태에서 어떤 작업을 반복으로 실행하고 싶다면 살짝의 노가다가 필요해진다. (메소드가 있는 상태에서는 그냥 메소드를 여러번 호출하..

배열 (Array)

배열 : 연관된 데이터를 모아서 관리하는 데 사용하는 데이터 타입. 간단히 배열을 만들어서 변수를 넣어보자 String type의 array는 'String[] 변수명' 으로 만들 수 있다.{ } 안에 String 값들을 넣으면 String array가 된다.(같은 맥락으로 int[ ] 등등이 있다.)그리고 array의 n번째 값을 뽑아오고 싶으면 System.out.println(array이름[n-1]); 을 한다.(첫 번째는 [0] 두 번째는 [1] ... n 번째는 [n-1] ) new String[100]을 통해서 길이가 100인 String array를 만들었다.따라서 classGroup.length 를 출력하면 100이 나온다.(길이는 변수에 담긴 배열이 몇 개의 값을 수용할 수 있는지 알려주..

반복문(while , for)

반복문은 대표적을 두 가지가 있다. 1. while loop 기본 구조는 while ( 조건 ) { 실행할 내용 } 이다. while은 for loop 과 달리 while문 밖에 초기 값이 꼭 필요하다. 따라서 처음에 int i = 0; 으로 할당하고 i i =1 while 돌아서 출력. i ++ = > i=3 while 돌아서 출력. i++ => i = 4 00 01 02 03 04 05 06 07 08 09, 또 i =1 일 때 j의 for 문을 돌고 => 10 11 12 13 14 15 16 17 18 19이런 식으로 99까지 돈다. 반복문의 중첩으로 0 ~ 99까지의 수를 출력해 보았는데 이건 Sysout 을 한거기 때문에 사실 어디에 저장되어 있는 값은 아니라고 생각했다. 그래서 이걸 array..

조건문(if, switch) + 논리 연산자

1. if statement 기본 구조 : if (boolean statement){body} => 저 boolean statement 가 true일 때 body를 실행한다. 2. if else statement 기본 구조: if/else 와 if/else if / else 가 있다. if(boolean){ if(boolean){body1 body1}else{ }else if(boolean){body2 body2} }else{ body3 } if / else 는 if의 boolean이 true면 body1을 실행하고, false이면 else를 실행하도록 한다. if / else if / else는 if의 boolean이 true면 body1 , else if의 boolean 이 true면 body2 모두..