자바

남궁성님의 Java의 정석(3rd Edition)을 보고 정리한 글입니다. 1. 제어자 클래스, 변수, 메서드의 선언부에 사용되며, 부가적인 의미를 부여한다. 하나의 대상에 여러 개의 제어자를 조합해서 사용할 수 있다.(접근제어자는 하나만 사용 가능) 접근제어자와 그 외 제어자로 나눌 수 있다. 2. 접근제어자 public: 접근제한이 없음. protected: 같은 패키지 내에서, 다른 패키지의 자식클래스에서 접근 가능 default: 같은 패키지 내에서 접근 가능 private: 같은 클래스 내에서 접근 가능 접근 제어자를 사용하는 이유는 외부로부터 데이터를 보호하며, 외부에는 불필요한, 내부적으로만 사용되는 부분을 감추기 위해 사용한다. ⇒ 캡슐화 3. 그 외 제어자(static, final, ab..
남궁성님의 Java의 정석(3rd Edition)을 보고 정리한 글입니다. 1. package란? 서로 관련된 클래스들끼리 그룹 단위를 package로 묶어서 효율적으로 관리 클래스의 이름이 동일해도 서로 다른 package이면 다른 클래스로 인식 package는 물리적으로 하나의 디렉토리이며, package에 다른 package를 포함시킬 수 있다. 2. package 네이밍 규칙 pacakge 명은 소문자로 사용하는 것이 원칙 java로 시작하는 패키지 금지(자바 표준 api에서만사용) 자바 예약어 금지 패키지는 .(dot)로 구분 한다. package 상위패키지명.하위패키지명 package org.example.pck; 3. import문 다른 패키지의 클래스를 사용할 경우 패키지명과 클래스를 모두..
남궁성님의 Java의 정석(3rd Edition)을 보고 정리한 글입니다. 1. 상속이란? 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것 두 클래스를 부모와 자식의 관계를 맺어주는 것 자식은 부모의 모든 멤버를 상속받는다.(생성자, 초기화블럭 제외) 상속을 사용한 2가지 경우를 살펴보자. a. 상속 사용1 class Child extends Parent { void play() { System.out.println("play~~~~"); } } class Parent { int age; } 상속을 구현하는 방법은 extends키워드만 함께 써주기만 하면 된다. Child는 Parent를 상속받기 때문에 Parent의 모든 멤버(age)를 상속 받는다. play() 메서드는 오직 Child의 멤버..
남궁성님의 Java의 정석(3rd Edition)을 보고 정리한 글입니다. this와 super를 알아보기 전에 생성자에 대해서 알아보자. 1. 생성자(Constructor)란? 인스턴스가 생성될 때 호출되는 메서드(인스턴스 초기화 메서드) 인스턴스 변수 초기화 또는 인스턴스생성시 수행할 작업에 사용 모든 클래스는 하나 이상의 생성자가 있어야 한다. 생성자 이름은 클래스 이름과 같다. 생성자는 리턴값이 없다.(void는 쓰지 않음) 접근제한자 클래스이름(매개변수) { // 수행될 코드(인스턴스 변수 초기화 등) } 2. 생성자의 종류 기본 생성자 매개변수가 없는 생성자 생성자가하나도 없으면 컴파일러가 기본 생성자를 추가한다 class Data { int value; Data() { } // 기본 생성자(..
남궁성님의 Java의 정석(3rd Edition)을 보고 정리한 글입니다. 1. 오버로딩(Overloading) 기존에 없는 새로운 메서드를 정의하는 것 메서드 명은 같지만 매개변수 타입, 개수, 순서가 다른 것 같은 클래스 내에서 적용된다. int add(int a, int b) { return a + b; } int add(int a, int b, int c) { return a + b + c; } int add(int x, int y) { return x + y; } // 매개변수의 식별자만 다른 경우 => 오버로딩 x short add(int a, int b) {return a + b; } // 반환 타입이 다른 경우 => 오버로딩 a. 가변인자 오버로딩 기존에는 메서드의 매개변수가 고정적이었으나..
남궁성님의 Java의 정석(3rd Edition)을 보고 정리한 글입니다. 1. 매개변수를 전달하는 방법 Java에서 메서드 매개변수를 전달할 때 두가지 방법이 있다. 기본타입을 매개변수로 넘기는 경우 이를 Call by Value라고 하고, 참조타입을 넘기는 경우 Call by Reference라고 한다. Call by Value Call by Reference 2. Call by Value Call by Value는 값에 의한 전달을 뜻한다. Call by Value는 단순히 변수의 값만 읽어 올 수 가 있어 변수의 값을 변경 할 수 없다.(Read Only) public class Class1 { public static void main(String[] args) { int a = 9; set(a..
남궁성님의 Java의 정석(3rd Edition)을 보고 정리한 글입니다. 1. JVM(Java Virtual Machine) 구조와 동작방식 Java 소스파일(.java) 개발자가 작성한 Java 소스코드 파일이다. Java 바이트코드(.class) Java 컴파일러(javac)가 Java 소스코드 파일을 Java 바이트코드로 컴파일한다. Class Loader(클래스 로더) Java는 클래스를 동적으로 로딩합니다. 클래스로더가 바이트코드(.class)들을 읽어서 필요 시점에 동적으로 Runtime Data Area 영역에 동적 적재한다. Execution Engine(실행엔진) 클래스 로더를 통해 Runtime Data Area 에 배치된 바이트코드를 읽어서 명령어 단위로 해석하고 바이트 코드를 실제..
남궁성님의 Java의 정석(3rd Edition)을 보고 정리한 글입니다. 1. 배열이란? 동일한 자료형을 연속된 메모리 공간에 순차적으로 저장하기 위한 자료구조 2. 배열 선언 및 초기화 배열의 크기가 N이라고 하면 index는 0 ~ N - 1까지 사용 // 저장할 데이터를 모를 때 자료형[] 변수명 = new 자료형[크기]; // 저장할 데이터를 알고 있을 때 자료형[] 변수명 = {데이터1, 데이터2, 데이터3, ... }; 3. 다차원 배열 차수의 크기를 모두 같게 지정 int[][] arr1 = new int[5][3]; 첫번째 차수의 크기만 지정한 후 나머지 차수는 서로 다르게 지정 int[][] arr2 = new int[5][]; arr2[0] = new int[4]; arr2[1] = ..
남궁성님의 Java의 정석(3rd Edition)을 보고 정리한 글입니다. 1. 조건문 자바에서 조건문은 if, switch문 두 가지 뿐이다. if문은 위에서 아래로 순차적으로 조건식을 확인하는 반면, switch case 문은 해당되는 경우를 바로 찾아서 실행문을 실행시켜준다. switch-case는 정수, 문자, 문자열 형태만 가능하여, 정수로 값이 떨어지고 비교하려는 조건이 많아지면 swith-case를 사용하는 것이 성능면에서는 좋다. // if 문 if(조건식1) { // 조건식1이 true일 때 실행 } else if(조건식2) { // 조건식2이 true일 때 실행 } else { // 위의 모든 조건식이 fasle 일 때 실행 } // switch-case 문 switch (ch) { c..
남궁성님의 Java의 정석(3rd Edition)을 보고 정리한 글입니다. 1. 변수(Variable) 변수란 데이터를 저장할 수 있는 메모리 공간을 의미 변수를 메모리의 어디에 저장하고 어떤 방식으로 저장할지는 프로그래밍 언어와 운영체제가 정하는데, 자바의 경우 JVM이 하게 된다. 2. 명명 규칙 대소문자가 구분된다. 길이에 제한이 없다. 예약어를 사용해서는 안된다. 숫자로 시작해서 안 된다. 특수문자는 “ _ ”, “ $ ” 만 사용 가능 3. 명명 규칙(권장사항) 한글 등 사용 x (오류 잡기가 힘듦) 클래스 이름의 첫 글자는 항상 대문자 Person, String 변수, 메서드 이름은 항상 소문자 getInfo(), age 여러 단어의 경우 첫글자는 대문자 lastIndexOf(), String..
kmindev
'자바' 태그의 글 목록 (3 Page)