티스토리 뷰
- 배열
- 같은 자료형의 원소를 정해진 개수만큼 가지고 있는 객체
- 배열의 크기는 배열이 초기화 또는 생성될 때 정해짐
- 숫자 인덱스(첨자)를 사용하여 특정 원소를 다룸
- 배열의 선언
- 선언할 때는 크기를 지정할 수 없음(c, c++과 다른점)
- 형식은 자료형[] 변수이름; 또는 자료형 변수이름[];
- 예
- int[] a; / int b[]; // 주소값만 가지고 있음
- int[][] c; / int d[][]; / int[] e[];
- int f[10]; // 오류
- 배열의 초기화
- 선언과 동시에 중괄호를 이용하여 초기값을 지정
- 자동으로 메모리 공간이 확보됨
- 초기화 또는 생성 과정을 거쳐야 배열의 원소를 사용할 수 있음
- 예
- int a[] = {2, 3, 5, 7, 11}; // 선언과 동시에 초기화
- int anArray[][] = {{1, 2, 3},{4, 5, 6}};
- int b[]; b = {4, 5, 6}; // 오류
- 선언과 동시에 초기화하지 않고 두번에 나눠서 했으므로
- 선언과 동시에 중괄호를 이용하여 초기값을 지정
- 배열의 생성
- 배열의 원소가 사용할 메모리 공간의 생성
- new 연산자를 이용
- 배열의 크기를 정하고 메모리 공간을 확보
- new 연산자는 메모리의 주소값을 리턴함
- 원소가 숫자인 경우 0, 참조형인 경우 null로 자동 초기화
- 예
- int a[] = new int[3]; // 선언과 생성
- int b[]; b = new int[10];
- int anArray4[][] = new int[3][2];
- new 연산자를 이용
- 배열의 원소가 사용할 메모리 공간의 생성
- 배열의 크기
- 배열은 크기를 가지는 내장 속성 length를 가짐
- 사용법은 배열이름.length
- 배열은 크기를 가지는 내장 속성 length를 가짐
- String 클래스
- String 클래스는 문자열을 표현하고 처리하기 위한 참조형
- String 형의 변수는 참조형이나 기본형 변수처럼 사용할 수 있음
- 이중 따옴표를 사용함
- String s1 = "Java";
- String s2 = new String("Java"); // 생성자 사용
- 참조형 변수에는 null이라는 특별한 값을 지정할 수 있음
- if(s1 != null) { ... }
- 이중 따옴표를 사용함
- 문자열의 + 연산자
- 두 문자열을 연결
- (문자열+기본형) or (문자열+다른 참조형)도 가능
- +연산자를 사용할 때, 기본형(또는 다른 참조형) 값은 문자열로 자동 형변환 가능
- print() 나 println()에서 자주 사용됨
- 1개 매개변수를 문자열로 바꾸어 출력함
- System.out은 화면 출력을 위한 객체
- Scanner 클래스
- 키보드나 파일로부터 다양한 자료를 입력받을 때 사용
- 기본적으로 공백 문자로 구분되는 단어 단위로 입력됨
- 문자열이나 기본형 값의 입력을 위해 nextXXX() 메소드를 제공함
- 키보드에서 입력을 받는 Scanner 객체
- System.in을 이용하여 Scanner 객체를 만들고 사용
- 키보드나 파일로부터 다양한 자료를 입력받을 때 사용
Scanner sc = new Scanner(System.in);
String name = s.next();
-
- Scanner 클래스의 입력용 메소드
- boolean hasNext() = 다음 단어가 있으면 true를 반환 / String next() - 단어를 읽어 String으로 반환
- boolean hasNextInt(), int nextInt()
- boolean hasNextDouble(), double nextDouble()
- boolean hasNextLine(), String nextLine();
- Scanner 클래스의 입력용 메소드
public class ScannerDemo{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(sc.hasNextInt()){
System.out.println(sc.nextInt());
}
}
}
- 클래스 정의
- 클래스 정의 문법
- 클래스 접근 제어자
- 생략, public, protected, private
- 또는 abstract, final
- [접근 제어자] class 클래스이름 [extends 부모클래스 이름] [implements 인터페이스 이름] {
데이터필드 선언
생성자 선언, 메소드 선언
}
- 클래스 접근 제어자
- 클래스 정의와 사용
- 클래스 정의
- 데이터필드와 메소드를 정의
- 객체가 가지는 인스턴스 변수와 인스턴스 메소드(객체가 생성되어야만 존재할 수 있음)
- 클래스가 가지는 클래스변수와 클래스 메소드
- 객체의 상태는 데이터 필드로 행위는 메소드로 구현됨
- 메소드는 저장된 데이터를 이용해 기능을 수행
- 데이터필드와 메소드를 정의
- 클래스 사용
- 클래스형 변수를 선언할 때(클래스는 객체의 자료형)
- 객체를 생성할 때
- 상속받아 클래스를 정의할 때
- 클래스 정의
- 클래스의 접근 제어자(1)
- 클래스 접근 제어자의 의미
- 클래스를 사용할 수 있는 범위를 제한하는 것
- private과 protected는 특별한 경우에만 사용함
- 접근제어자가 생략된 경우와 public class
- 클래스 선언에서 접근 제어자가 생략된 class
- 같은 패키지에 있는 다른 클래스에서 사용가능(패키지 접근수준)
- public class로 선언된 경우
- 모든 클래스에서 즉, 어디서나 사용가능
- 클래스 선언에서 접근 제어자가 생략된 class
- 클래스 접근 제어자의 의미
- 클래스의 접근 제어자(2)
- 클래스 정의 문법
class Circle{
private bouble 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(); // Circle클래스앞에 접근제어자가 생략되어 있으므로 같은 패키지라면 정상실행됨
System.out.println(c.r); // 오류 r은 private이므로
System.out.println(c.getRadius());
System.out.println(c.getArea());
}
}
-
- 데이터 필드의 접근 제어자(1)
- 클래스 정의에서 데이터 필드나 메소드를 정의할 때도 접근제어자를 사용함
- 데이터 필드를 사용할 수 있는 범위를 제한하는 것(정보 은닉)
- 메소드의 접근 제어자도 의미가 같음
- 데이터 필드 접근제어자 의미
- private 필드는 같은 클래스에서만 사용가능
- 접근 제어자가 생략된 필드는 같은 패키지에 있는 다른 클래스에서 사용가능
- protected 필드는 같은 패키지와 자식 클래스에서 사용가능
- public 필드는 모든 클래스에서 사용가능
- 클래스 정의에서 데이터 필드나 메소드를 정의할 때도 접근제어자를 사용함
- 데이터 필드의 접근 제어자(1)
'java' 카테고리의 다른 글
[Java] 연산자와 제어문 (0) | 2021.03.21 |
---|---|
[Java] 언어의 기원 (0) | 2021.03.14 |
[Java] OkHttpClient로 동기, 비동기 요청하기 (0) | 2021.02.13 |
[Java] OAuth인증을 통해 Request Token, Access Token 발급받기 (0) | 2020.11.25 |
[Java] return true; return false; (0) | 2020.05.21 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- dfs
- Stack
- 동적프로그래밍
- 운영체제
- C++
- 이진탐색
- 스텍
- 인접리스트
- 재귀함수
- react
- Java
- BFS
- 알고리즘
- javascript
- 인접행렬
- 세마포어
- 클래스
- 배열
- server side rendering
- 병행프로세스
- 최단경로
- 소프트웨어
- stackframe
- 구조체
- C
- 교착상태
- 퀵정렬
- client side rendering
- 입출력장치
- 자료구조
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함