접근 제한자 : 외부 접근을 허용할지 허용하지 않을지 결정하는 키워드
private : 비공개
default : 패키지 내부 공개
protected : 상속 공개
public : 완전 공개
private의 경우 외부 접근을 막는 키워드인데 올바른 사용자도 접근하지 못하는 경우 발생
-> 우회하기 위한 방법으로 getter 와 setter사용.
getter methods : private 필드를 반환(get)
setter methods : private 필드를 변경(set)
자바 api
프로그래밍을 위해 만들어진 도구들 ->패키지의 형태로 제공
ex) Math
-> import java.lang.Math; (java.lang은 패키지, Math는 클래스)
ArrayList : 객체 관리하는 api.
-> import java.util.ArrayList;
ex)
ArrayList<String>ArrayList <String> names = new ArrayList <String>();
names.add("kim");
names.add("lee");
names.add("park");
System.out.println(names.get(2)); -> park 출력
names.remove(1); -> lee삭제 -> 1번 자리에 park이 채워짐
Arrays.toString(배열 이름) -> 대괄호로 배열 안의 값을 감싸고 각 값 사이에 ','를 자동으로 놓아준다.
클래스 구현
class name(클래스 이름)
fields(상태) -> 변수 선언부
methods(동작) -> 메소드 선언부
클래스가 있다 -> 객체를 만들 수 있다
ex) class Dog { ~~~~}
객체 생성 : new Dog();
객체 생성 후, 변수(인스턴스)화 : Dog dog1 = new Dog();
생성된 객체에 연결하는 법 : 연결된 변수와 '.'(dot)을 통해 접근 가능
ex) dog1.name = "쵸코"; ->객체 필드 초기화
출력 방법 : System.out.println(dog1.name);
메소드 스코프(메서드 영역, 범위) : 파라미터(매개변수), 지역변수
클래스 스코프 : 필드(인스턴스 변수)
생성자 : 클래스로부터 객체를 만들어내는 메소드, 객체 생성뿐만 아니라 초기화의 역할도 가지고 있다.
생성자 호출: 클래스_타입 변수명 = new 클래스_이름(전달 값);
생성자 정의 : 클래스_이름(파라미터){} -> 리턴 타입 x
변수의 타입은 크게 두 가지로 나뉜다
레퍼런스형 : ex) String Dog 등.. 클래스 타입, 사용자 정의형 타입으로 불린다.
-> 객체 연결을 위한 타입
기본형 : int, double, char 등..
static : "공유"의 개념이 담긴 키워드
static fields : 클래스 변수 : "공유"를 위한 객체 외부 변수(객체 밖에서 공유)
non- static fields : 인스턴스 변수 : 객체 내부에 존재하는 변수
static methods : 클래스 메소드 : "클래스"가 동작시키는 메소드, 주체 객체 없이 호출가능 : 인스턴스화(new연산자)없이 호출이 가능하다. -> 간편 기능 구현에 유용 -> Math.random();
non-static methods : 인스턴스 메소드 : "주체 객체"가 동작하는 메소드(주체 객체가 반드시 필요)
-> 특정 객체의 동작 구현 시 유리 -> ex) dog1.run();
interface(인터페이스) : 일종의 역할(클래스에게 역할을 부여하는 것)
장점 : 1. 프로그럼 설계의 명확성
2. 인터페이스 타입을 통해 연관 관계 형성
-> 업 캐스팅 가능 : 자식 객체를 부모의 타입으로 해석하는 것
배열화(그룹화) 가능
ex)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
interface Alarm(인터페이스 이름){
//프로토타입 메소드(내용이 없는 껍데기 메소드)
public void beep();
public void playMusic();
}
class SmartPhone implements Alarm {
public void beep() { //프로토타입 메소드 오버라이딩(재정의)
System.out.println("삐 --삐삐삐- 삐삐삐!");
}
puvlic void playMusic(){ //프로토타입 메소드 오버라이딩(재정의)
System.out.println("이밤을 빌려 말해요~~");
}
}
|
cs |
'자바 공부' 카테고리의 다른 글
[JAVA]초보 개발자 김주호와 기초부터 시작하는 자바공부 8일차 (은행, 입금, 출금, 계좌이체) (0) | 2021.01.22 |
---|---|
[JAVA]초보 개발자 김주호와 기초부터 시작하는 자바공부 7일차 (ArrayList) (0) | 2021.01.20 |
[JAVA]초보 개발자 김주호와 기초부터 시작하는 자바공부 6일차 (전화번호부) (0) | 2021.01.19 |
[JAVA]초보 개발자 김주호와 기초부터 시작하는 자바공부 5일차 (0) | 2021.01.18 |
[JAVA]초보 개발자 김주호와 기초부터 시작하는 자바공부 4일차 예제 풀이 (0) | 2021.01.16 |