같은 자료형의 원소를 정해진 개수만큼 가지고 있는 객체
//형식: 자료형[] 변수이름; or 자료형 변수이름[];
int[] a; int b[];
int [][] c; int d[][]; int[] e[];
int f[10]; //오류
선언과 동시에 중괄호를 이용하여 초기값 지정

new 연산자 이용
✔️ 배열의 크기를 정하고 메모리 공간 확보
✔️ new 연산자는 메모리의 주소값을 리턴함
✔️ 원소가 숫자일 경우 0, 참조형인 경우 null로 자동 초기화
int a[] = new int[3]; //선언과 생성
int b[]; b = new int[10];
int anArray4[][] = new int[3][2];
배열은 크기를 가지는 내장 속성 length를 가짐
→ 사용법: 배열이름.length
public class Main {
public static void main(String args[]) {
int twoArray[][] = { { 0, 1 }, { 10, 11, 12 } };
for (int i = 0; i < twoArray.length; i++) {
for (int j = 0; j < twoArray[i].length; j++) {
System.out.println(twoArray[i][j]);
}
}
}
}
String 클래스는 문자열을 표현하고 처리하기 위한 참조형// 이중 따옴표 사용
String s1 = "Java";
String s2 = new String("Java"); // 생성자 사용
// 참조형 변수에는 null이라는 특별한 값을 지정할 수 있음
if (s1 != null) {...}
+ 연산자+ 연산자 사용 시, 다른 형의 값은 문자열로 자동 형변환⭕print()나 println()에서 자주 사용됨System.out은 화면 출력을 위한 객체System.out.println("result=" + " " + result);
System.out.println('A'+ 0); //65
System.out.println("A" + 0);
Scanner 클래스키보드나 파일로부터 다양한 자료를 입력 받을 때 사용한다.
next(), nextInt()와 같은 메소드 제공Scanner sc = new Scanner(System.in);
String name = sc.next();

Scanner s = new Scanner(System.in);
String name = s.next()
import java.util.Scanner;
public class Main {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
while (sc.hasNextInt()) {
System.out.println(sc.nextInt());
}
}
동종 객체를 표현하기 위한 데이터 필드(멤버 변수)와 메소드를 정의함
final 클래스 등을 정함[접근제어자] class 클래스이름
[extends 부모 클래스 이름] [implements 인터페이스 이름]
{
<데이터필드 선언>;
<생성자 선언>;
<메소드 선언>;
}
[접근제어자] 반환형 메소드이름([자료형 인자[, 자료형 인자...]])
[throws 예외이름]
{
<문장> ...
}
class Circle {
...
public double getArea() {
return this.r * this.r * 3.14;
}
}
클래스 정의에서 데이터 필드와 메소드
💡 언제 클래스를 사용할까?
- 클래스형 변수를 선언할 때 (클래스는 객체의 자료형)
- 객체를 생성할 때
- 상속받아 클래스를 정의할 때
클래스의 사용 범위를 제한하는 것
- 생략,
public,private,protected
✔️private와protected는 내부 클래스에서만 사용
공개 범위: public > protected > default(생략) > private
public: 모든 클래스에서 사용 가능protected: 같은 패키지 + 자식 클래스에서 사용 가능default: 같은 패키지에서만 사용 가능private: 같은 클래스 내부에서만 사용 가능
클래스 정의에서 단 하나의 생성자 정의도 없다면 컴파일러가 다음과 같은 것을 자동으로 만들어줌
public Circle() {}
생성자 몸체의 첫 줄에 부모 생성자의 명시적 호출이 없다면, 다음 코드가 자동으로 들어감
super(); // 부모 클래스의 기본 생성자를 호출
따라서 부모 클래스에서 기본 생성자의 존재를 확인해야 함