[JAVA] 접근 제한자, 정보은닉, Static, psvm
2021. 8. 17. 16:18
JAVA/기본 문법
접근 제한자 접근 제한자 (Access Modifier)란? 클래스, 변수, 메소드를 선언할 때 사용하는 것으로 해당 클래스, 변수, 메소드의 접근을 제한할 때 사용 접근 제한자를 통해 해당 정보를 외부 접근으로부터 보호할 수 있음 접근 제한자의 종류 public : 어디에서나 접근가능 protected : 동일 클래스, 패키지에서 접근가능 + 해당 클래스를 상속받은 외부 패키지의 클래스에서 접근가능 default(안 써주는것) : 동일 클래스, 패키지에서만 접근가능 private : 동일 클래스에서만 접근가능 public > protected > default > private 순으로 접근 범위가 넓음 변수와 메소드는 모든 접근 제한자를 사용할 수 있지만, 클래스는 public과 default만 사용 ..
[JAVA] 얕은 복사(Shallow Copy), 깊은 복사(Deep Copy)
2021. 8. 16. 21:48
JAVA/기본 문법
얕은 복사 (Shallow Copy) 란? public class Main { public static void main(String[] args) { Student s1 = new Student(); s1.name = "Tom"; Student s2 = s1; s2.name = "Harry"; System.out.println("s1의 이름 : " + s1.name); // Harry 출력 } } class Student { String name; } 위의 코드에서 Student s1 생성 후 이름을 "Tom"이라고 정했음 Student s2에는 s1을 그대로 넣어줬고, s2의 이름을 "Harry"로 변경 그리고 s1의 이름을 출력해보니 "Harry"가 출력됨 s2의 이름을 변경했는데 왜 s1의 이름까..
[JAVA] 클래스와 객체 (+ 생성자, this, 객체 배열 사용법)
2021. 8. 16. 21:06
JAVA/기본 문법
클래스와 객체란? 객체를 붕어빵, 클래스를 붕어빵 틀로 비유 (클래스를 사용해서 객체를 생성한다는 의미) Circle c1 = new Circle(); 위의 코드에서 Circle은 클래스(데이터 타입), c1은 객체(변수명) new는 객체 생성을 뜻하고, ()는 함수 생성자를 의미함 Circle, String, int[], char[], ...을 참조형 타입이라고 함 이와 반대되는 개념으로 기본형 타입(Primitive Type)이 8개 있음 논리형 : boolean 문자형 : char 숫자형(정수) : byte, short, int, long 숫자형(실수) : float, double 기본형 타입은 각각 크기가 다른데, 참조형 타입은 모두 4byte임 => 메모리 주소값을 담고 있기 때문 클래스, 객체..
[JAVA] 배열 + java.util.Arrays 패키지 활용
2021. 8. 16. 21:05
JAVA/기본 문법
배열 기본 문법 1차원 배열 생성 (int 형) int[] array = new int[5]; // 방법 1 int array[] = new int[5]; // 방법 2 5칸짜리 int형 배열 생성 (index : 0~4) 초기값을 따로 지정 안해주면 0이 들어감 (String의 경우 null값이 들어감) 배열의 선언은 메모리 할당을 뜻함 배열을 선언했을 때, 첫 번째 index가 메모리의 1000번지 주소에 올라갔다고 가정하면 array에는 메모리주소 1000이 들어가고, 배열은 1000번지부터 연속적으로 메모리 할당을 받음(int=4byte => 1000~1020) 2차원 배열의 메모리 할당은 array에는 array[0]의 주소가 들어가고, array[0]에는 array[0][0]의 주소가 들어가고..
[JAVA] 문자열(String) 관련 메소드 정리 + 형변환
2021. 8. 14. 17:24
JAVA/기본 문법
문자열 생성 (2가지 방법 및 차이) String str1 = "Test"; String str2 = "Test"; String str3 = new String("Test"); String str4 = new String("Test"); System.out.println(str1 == str2); // true System.out.println(str1 == str3); // false System.out.println(str3 == str4); // false str1, str2와 같이 생성하면 "Test"라는 리터럴의 주소값을 가르키기 때문에 같다고 여겨짐 (=> Heap 메모리에 "Test" Literal이 올라감) str3, str4는 새로운 String 객체를 만드는 것이기 때문에 서로 다른 주..
[JAVA] Hello, World! (Eclipse)
2021. 8. 10. 19:08
JAVA/기본 문법
JAVA 프로젝트 생성부터 Hello, World! 출력까지 정리 JAVA 프로젝트 생성 JDK, JRE, 이클립스 IDE 설치 후 이클립스 IDE 실행 이클립스 실행시 첫 화면 File -> New -> Project 클릭 JAVA Project 선택 후 Next 모두 입력하고 Finish JAVA 프로젝트 생성 완료! 패키지 생성 화면 왼쪽의 Project Explorer의 src 폴더에서 우클릭 -> New -> Package Package 이름 설정하고 Finish Package 생성 완료! package를 생성하는 이유는 package 생성을 통해 class들을 더 체계적으로 관리할 수 있기 때문 클래스 생성 생성한 Package에서 우클릭 -> New -> Class 클래스의 이름 지정 후 F..