[ITWILL : JAVA]Method, 변수와 상수, 배열 Array, new키워드
ITWILL학원 : 4강 JAVA BY 윤미영강사
1. Method
괄호가 있으면 다 메서드라고 부른다
매서드는 항상 Class라는 주인이 있어야 한다.
다른 사람이 만들어 놓은 매서드를 사용할 수 있다. = 라이브러리라고 부른다
예시
- main() : 메인매서드
- println() : OutputStream이라는 라이브러리안에 정의되어있는 매서드
- Scanner sc = new Scanner(System.in) sc.next(); InputStream 라이브러리에 정의되어 있는 next()매서드
2. 변수와 상수
변수
변하는 값.
값을 저장할 수 있는 메모리 위치.
변수를 사용하기위해서는 항상 변수선언을 데이터타입과 함께 먼저 해줘야한다.상수
변하지 않는 하나의 값
앞에 final이 붙는다
- 예시 PI : 3.141592…
- 사용법 : final double PI = 3.141592;
3. 배열 Array
배열이란 쉽게말해 여러개의 변수를 한꺼번에 선언하는 것이다
변수를 선언한다는 것은 메모리에 a변수가 생성이 된다는 의미이다.
배열에서는 변수갯수를 선언할 수 있다 -> int [] ar = new int[10]
는 메모리에 10개의 정수 변수 생성된다는 의미이다
여기서 주의할 점은 ar1의 데이터타입은 int가 아님을 명심하자!
int[]의미는 int를 관리한느 배열타입이지 int타입이 아니다.
ar1의 데이터타입은 기본형에 포함되지않는 참조형의 데이터타입이다.
배열객체를 생성하기 위해서는 new키워드와 함께 어떤 데이터를 몇개나 저장할지에 대한 정보가 필요하다.
그렇다면 new키워드란 무엇일까?
아래 잘 설명한 블로그가 있어서 가져왔다.
참고링크 : 자바 변수들의 메모리 구조,new 키워드
배열변수선언에는 두가지 방법이 있다
3-1. 첫번째 배열선언 방법
배열생성과 배열갯수만 선언하는 방법이다int [] ar1 = new int[3]
로 배열과 배열갯수를 한꺼번에 선언. 초기화는 안됨!
1 | int [] ar1; //배열생성 : 메모리에 a변수 생성 |
데이터형마다 기본값이 다르다
기본데이터형이 아닌 참조데이터형인 경우 기본값이 다르다
- 기본데이터형의 기본값은 데이터형에 따라 다르다
- int 는 0
- double은 0
- char는 ‘’(빈칸)
1 | char [] chs = new char[2]; |
- 참조데이터형의 기본값은 null (자바언어의 예약어이고 실제 값이 없다는 의미이다)
- string은 null
- String형
1 | String [] str = new String[3]; |
- 참조형
기본적으로 같은 타입을 한 배열에 넣을 수 있다.
1 | Person[] p = {new Person, new Person}; |
타입이 다른 참조형데이터를 하나의 배열에 넣을 순 없을까?
다형성을 이용하면 가능하다.
상속관계인 경우에만 타입이 다른 참조형데이터를 하나의 배열에 묶을 수 있다.
1 | Person[] p = {new Person. new Person} |
3-2. 두번째 배열선언 방법
배열생성과 초기화를 한꺼번에 선언하는 방법이다
int [] ar2 = {10, 20, 30}
여기서는 new int[5]를 하지않아도 된다 왜냐면 위의 코드 자체에 변수갯수선언이 포함되어있다
이 방법은 테스트용으로 주로 사용할뿐 실무는 new int[]형태로 사용한다
1 | int [] ar2 = {10, 20, 30}; //배열생성과 초기화 한꺼번에! |
- 위의 두 방법의 차이점
일반적으로는 new int[]형태를 더 많이 쓰인다
왜냐하면 보통 다른 파일이나 데이터베이스의 내용을 가져오기 때문에 변수갯수가 정해져있다.
배열을 사용하려면 항상 크기를 미리 알아야한다.
만약 배열의 크기를 모른다면 쓸 수 있는 가장 큰 수를 적어주면되지만 대신 메모리를 많이 잡아먹는다.
그래서 사용하는 것이 Collection(컬렉션)이다
- Collection 컬렉션 :
- 참조형데이터형태
- 배열과 같은 역할을 하지만 크기를 모를때 사용
- 정적 메모리 할당이 아닌 동적 메모리 할당이 되어서 필요한 만큼 공간을 계속 추가할수있다
- 컬렉션참고링크