반응형
개인 공부용 포스트 입니다.
배열
배열 : 같은 자료형의 원소를 정해진 개수만큼 가지고 있는 객체
- 선언할 때 크기를 지정하는 것이 아니라 초기화 또는 생성할 때 정해짐
- 숫자 인덱스를 사용하여 특정 원소를 다룸
- 참조형 변수 (포인트 변수와 비슷함 -> 주소값을 가지고 있음)
배열 선언 형식 -> 자료형[] 변수이름; 또는 자료형 변수이름[];
자료형 변수이름[숫자] -> X (선언할때 크기지정 안됨)
배열 초기화 예)
// 선언과 동시에 중괄호를 이용하여 초기값 지정
int a[] = {1, 2, 3, 4, 5};
int anArray[][] = {{1, 2, 3}, {4, 5, 6}};
int b[]; b = {1, 2, 3}; //오류
//new 연산자를 이용 -> 원소가 숫자인 경우 0, 참조형인 경우 null로 자동 초기화됨
int a[] = new int[3];
int b[]; b = new int[10];
int AnArray4[][] = new int[3][2];
배열의 크기 -> 배열이름.length
문자열
String 클래스
- String 클래스 : 문자열을 표현하고 처리하기 위한 참조형
- String 형의 변수는 참조형이지만 기본형 변수처럼 사용 가능 (원래 참조형 변수는 new 연산자를 이용하여 공간 할당을 받아야함)
String s1 = "Java";
String s2 = new String("Java"); // 생성자 사용
//참조형 변수에는 null이라는 특별한 값 지정 가능
if(s1 != null){}
문자열에서 + 연산자 -> 두 문자열을 연결함
문자열로 자동 형변환이 되는 것!
예)
System.out.println("result=" + " " + result);
System.out.println("A" + 0); //A0이 출력됨
System.out.println('A' + 0); //char형이기 때문에 A가 65가 되고 0이랑 더하기 연산이 이루어짐 -> 65가 출력됨
Scanner 클래스와 입출력
Scanner 클래스
- 키보드나 파일로부터 다양한 자료를 입력 받을 때 사용 (기봊넉으로 공백 문자로 구분되는 단어 단위로 입력됨)
- 문자열이나 기본형 값의 입력을 위해 next000() 메소드를 제공
- 키보드 입력 -> System.in을 이용하여 Scanner 객체를 만들고 사용함
Scanner sc = new Scanner(System.in);
String name = sc.next();
Scanner 클래스의 입력용 메소드
- boolean hasNext() - 다음 단어가 있으면 true를 변환
- String next() - 단어를 읽어 String으로 변환
- boolean hasNextInt(), int nextInt() - int값을 입력 받음
- boolean hasNextDouble(), double nextDouble() - double 값을 입력 받음
- boolean hasNextLine(), String nextLine() - 문자열을 입력 받음
예제
import java.util.Scanner;
public class ScannerDemo2{
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
while(sc.hasNextInt()){
System.out.println(sc.nextInt());
}
}
}
// 123 456 hello 를 입력하게 되면
// while 문이 돌면서 123과 456은 int형으로 true이기 때문에 출력이 되지만, hello는 false여서 while문이 안돌게 된다.
// 따라서 123 456만 출력됨
클래스 정의
클래스 정의 문법
[접근 제어자] class 클래스이름 [extends 부모클래스이름] [implements 인터페이스이름]{
데이터필드 선언 ...
생성자 선언 ...
메소드 선언 ...
}
접근 제어자 - public, protected, private (생략 가능)
- 생략된 경우 - 같은 패키지에 있는 다른 클래스에서 사용 가능
- public - 어디서나 사용 가능
비접근 제어자 - abstract, final(상속이 안됨)
인스턴스 변수 : 객체가 먼저 생성되어야함.
클래스 변수 : 해당 클래스의 객체들이 공유하는 변수 (데이터값이 1개만 있음)
클래스의 사용
- 클래스형 변수를 선언할 때 (클래스는 객체의 자료형)
- 객체를 생성할 때
- 상속받아 클래스를 정의할 때
예제
Class Circle{ //같은 패키지 안에서 사용 가능
private double r;
public Circle(double a) {
r = a;
}
public double getArea() {
return r * r * 3.14;
}
public double getRadius() {
return r;
}
}
public class CircleArea2 {
public static void main(String[] args) {
Circle c = new Circle(5);
System.out.println(c.r); //오류
System.out.println(c.getRadius());
System.out.println(c.getArea());
}
}
데이터 필드의 접근 제어자
- 클래스 정의에서 데이터 필드나 메소드를 정의할 때도 접근 제어자 사용가능
- private 필드 - 같은 클래스에서만 사용 가능
- 접근 제어자가 생략된 필드 - 같은 패키지에 있는 다른 클래스에서 사용 가능
- protected 필드 - 같은 패키지와 자식 클래스에서 사용 가능
- public 필드 - 모든 클래스에서 사용 가능
접근 제어자 정리
[참고 자료]
방송통신대학교 Java 프로그래밍
반응형
'IT > 개발공부' 카테고리의 다른 글
java stream에 대해 알아보자 (0) | 2023.06.12 |
---|---|
Java 패키지, 예외처리 (0) | 2023.06.08 |
Java 제네릭, 람다식 (0) | 2023.06.08 |
Java 인터페이스, 다형성 (추상 클래스, 열거 자료형, 익명 클래스) (0) | 2023.06.08 |
Java 클래스 이론 (0) | 2023.06.07 |