| 같은 클래스 | 같은 패키지 | 다른 패키지 | |
|---|---|---|---|
| public | O | O | O |
| default | O | O | X |
| private | O | O | X |
| protected | O | O | △(상속관계만) |
public : 모든 접근 허용
default : 같은 패키지에 있는 객체들만
protected : 같은 패키지에 있는 객체들과 상속관계 객체들만 허용
매개변수 X 리턴값 O - setter : 외부의 데이터를 전달받아 변수에 저장 매개변수 O 리턴값 Xpublic class PrimitiveCast {
public static void main(String[] args) {
byte b = 10;
int i = b; // 묵시적 형변환
b = (byte) i; // 명시적 형변환
float f = 10f;
long l = (long)f; // 명시적 형변환
}
증감 연산자
public class OpEx2 {
public static void main(String[] args) {
int a = 5;
++a;
System.out.println(++a); //7
System.out.println(a++); //7
System.out.println(a); //8
}
}
전위 증감 연산자(++n) : 1증가한 후 값이 연산결과값
int a = 5;
System.out.println(++a); //6
후위 증감 연산자(n++) : 1증가하기 전 값이 연산결과값
int a = 5;
System.out.println(a++); //5
Sttsem.out.println(a); //6
논리 연산자
비트 연산자 : (결과에 상관없이 모두 실행)
Stack : 정적으로 할당된 메모리 영역
Heap : 동적으로 할당된 메모리 영역
public class StackHeap {
public static void main(String[] args) {
int age = 25; // Stack (age = 25)
String name = "Jung"; // Stack (name) Heap (String Jung)
List<String> body = new ArrayList<>();
body.add("hand"); // Stack (body) Heap (List) (String hand)
body.add("foot"); // Stack (body) Heap (List) (String foot)
}
}
private를 관리하는 메서드
private할 때 다른 클래스에서 접근하려면 해당 클래스 안의 메서드를 통해서만 가능하다.
getter는 private를 외부로 꺼내는 메서드
setter는 private에 값을 넣는 메서드
public class Book {
private String title;
private int price;
public String getTitle() {
return this.title;
}
public void setTitle(String title) {
this.title = title;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
}
package com.example.enumtype;
public enum Day {
SUNDAY,
MONDAY,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATURDAY
}
=> Day라는 enum을 생성하여 요일을 열거하였다.
package com.example.enumtype;
public class Today {
private Day day;
public void setDay(Day day) {
this.day = day;
}
public Day getDay() {
return day;
}
}
=> Today라는 클래스를 생성하여 Day enum 필드를 생성하고
=> getter, setter를 생성하였다.
package com.example.enumtype;
public class TodayTest {
public static void main(String[] args) {
Today today = new Today();
today.setDay(Day.TUESDAY);
System.out.println(today.getDay());
}
}
=> Today를 사용하는 TodayTest 클래스를 다음과 같이 작성한다.
=> today의 setDay()메소드에는 Enum타입인 Day가 전달되야 한다.
=> 이 경우 정수로 선언된 상수와 다르게 Day안에 선언된 상수만 값으로 전달 할 수 있다.
=> 위의 코드를 실행하면 다음과 같다.
TUESDAY