제어자는 어떤 것들이 있으며, 어떻게 사용할까? 제어자 (Modifier) --제어자는클래스, 변수, 메서드 등에 특정한 동작인 속성을 부여하는 키워드로 부가적인 의미를 추가적으로 부여한다. 제어자 종류접근 제어자 (Access Modifiers)기타 제어자 (Non-Access Modifiers)-- 접근 제어자 (Access Modifiers) --접근 제어자는클래스, 변수, 메서드에 대한 접근에 대한 제한을 설정하는 키워드다. 접근 제어자 종류public : 접근 제한없이 어디서든 접근 가능protected : 같은 패키지 내의 클래스 or 다른 패키지의 자식 클래스에서 접근 가능default (기본값) : 같은 ..
분류 전체보기
package와 import는 무엇일까? 패키지 (Package) --패키지는클래스 또는 인터페이스들을 논리적으로 그룹화한 것을 의미한다. 정리하자면클래스는 물리적으로 하나의 클래스 파일(.class)이고패키지는 물리적으로 하나의 디렉터리다. 서로 관련된 클래스들끼리 그룹 단위로 묶어 패키지에 담으면클래스들을 효율적으로 관리할 수 있다. 규칙모든 클래스는 반드시 하나의 패키지에 속해야 한다.하나의 소스파일(.class 파일)에는 맨 첫 문장으로 단 한 번의 패키지 선언만을 허용한다. (반드시 최상단에 정의)같은 패키지 안에서는 동일한 이름의 클래스파일이 존재하면 안 된다. (서로 다른 패키지라면 상관 X)패키지는 점(.)을 구분자로 사용하여 계층구조로 구성한다. 패키지 선언 형식packag..
변수와 메서드는 무엇이며 어떻게 사용할까? 선언 위치에 따른 변수의 종류 --자바에서는 선언 위치에 따라 변수의 종류가 달라진다. 변수의 종류클래스 변수 (Static 변수)인스턴스 변수지역 변수참고 : [변수] 변수와 상수 (+ 타입, 진법, 형변환) 인스턴스 변수는클래스 내부에 선언된 변수를 가리키며해당 클래스를 통해 객체를 생성하여 (힙)메모리에 저장될 때 인스턴스 변수가 생성된다.정확하게는그냥 클래스 내부에 선언된 변수를 "인스턴스 변수"라고 부르는 것이 아니라해당 클래스로 객체를 생성하여 객체가 메모리에 저장될 때메모리에 저장된 변수를 "인스턴스 변수"라고 부른다.간단하게는객체에 저장된 변수를 "인스턴스 변수"라고 부르면 된다.(객체는 메모리에 저장되어 있으며 그 안에 존재하는 변수도..
상속은 무엇이며, 어떻게 사용하는 것일까? 상속 (Inheritance) --상속은기존의 클래스를 재사용하고 추가로 확장하여 새로운 클래스를 생성하는 방법으로코드의 재사용성을 높이고, 클래스 간의 관계도 형성할 수 있게 된다. 상속 기본 개념(용어)부모 클래스 : 재사용할 기존 클래스 (상위 클래스, 슈퍼 클래스라고도 부른다.)자식 클래스 : 부모 클래스를 가지고 확장하여 새로 생성한 클래스 (하위 클래스, 서브 클래스라고도 부른다.)상속해 주는 클래스를 "부모 클래스"상속받는 클래스를 "자식 클래스"라고 생각하면 된다. 상속 특징단일 상속만 가능 (자식 클래스는 하나의 부모 클래스만 상속 가능)자식 클래스는 부모 클래스의 멤버(변수, 메서드)만 상속받는다. (생성자나 초기화 ..
오버로딩과 오버라이딩은 무엇일까? 오버로딩 (Overloading) --오버로딩은하나의 클래스 내부에 같은 이름의 메서드를 여러 개 정의한 것을 의미한다. 오버로딩 조건메서드 이름이 같아야 한다.매개변수의 개수 or 타입 or 순서가 달라야 한다.반환 타입 또한 다르게 정의할 수 있다. (다만 반환 타입만 다르게 정의한 것은 오버로딩이 아니다.) class Calculator { // 두 개의 정수를 더하는 메서드 public int add(int a, int b) { return a + b; } // 세 개의 정수를 더하는 메서드 (매개변수 개수 다름) public int add(int a, int b, int c) { return a + ..
생성자는 무엇이며 어떻게 사용될까? 생성자 (Constructor) --생성자는객체를 생성할 때 호출되는 특별한 메서드를 의미한다.(객체 생성과 동시에 호출되는 메서드)주로 객체가 생성될 때 필드(인스턴스 변수)를 초기화하거나,객체를 초기 상태로 설정하는 데 사용된다. 생성자 규칙생성자의 이름은 해당 클래스의 이름과 동일해야 한다.생성자는 반환 타입이 없으며 return 값 또한 없다. (void 자체도 사용하지 않는다.)객체가 생성될 때 자동으로 호출된다.생성자 또한 오버로딩이 가능하다. (하나의 클래스에 여러 개의 생성자 정의 가능) 예시 코드class Card { String name; int age; Card() { // 매개변수가 없는 생성자 (기본 생성자) ..
클래스, 객체, 인스턴스는 무슨 차이가 있을까? 클래스 (Class)와 객체 (Object) --클래스는객체를 생성하기 위한 기본 틀을 정의해 놓은 것이다.즉, 객체의 설계도(틀)다.class Car { String color; String model; int maxSpeed = 200; void drive() { System.out.println("Let's go!!!"); }} 객체는클래스에 정의된 내용대로 완성하여 메모리에 생성(적재)된 것이다.즉, 클래스에 정의된 설계도를 가지고 생성한 실체다.Car myCar = new Car(); // Car 클래스의 객체 생성myCar.color = "Black"; // 객체의 속성 정의myCar...
배열에 사용할 수 있는 메서드들은 무엇이 있을까? 필요한 패키지 --import java.util.Arrays;-- 배열 출력 --1차 배열 출력Arrays.toString(배열이름)int[] arr = {1, 3, 5, 7, 9};System.out.println(Arrays.toString(arr));// [1, 3, 5, 7, 9] 다차원 배열 출력Arrays.deepToString(배열이름)int[][] arr = {{1, 3, 5, 7}, {0, 2, 4, 6}};System.out.println(Arrays.deepToString(arr));// [[1, 3, 5, 7], [0, 2, 4, 6]]/*만약 toString(arr)를 사용했다면?[[I@3934vb32c3], [I@..