목록JAVA/chapter01_JAVA_개념정리 (25)
WON.dev
1.1 패키지 (Package) - 클래스들을 구분해서 저장하기 위한 디렉토리 구조이다. - 기본 3 단계 이상으로 구분하는 것이 일반적이다. ex) com.naver.project kr.co.naver.project - 개발자가 패키지를 생성하지 않으면 "디폴트 패키지"에 클래스가 생성된다. - 패키지에 저장된 클래스 사용 방법 ex) import를 이용한다. import 없이 패키지.클래스 방식으로 사용한다. - 대규모 프로젝트나, 다른 회사의 패키지를 이용해서 개발할 경우, 패키지 이름이 중복될 가능성이 있다. 그래서 중복되지 않도록 회사의 도메인으로 패키지를 만든다. - 조직(회사).조직명(회사명).프로젝트명 순으로 만드는 것이 관례이다. 1.2 패키지 선언 1) 규칙 - 숫자로 시작해서는 안되고..
1.1 상속 (Inheritance) - 부모가 자식에게 물려주는 행위를 말한다. - 기존 클래스를 재활용 하는 것이다. - 기존 클래스를 확장(extends)하는 것이다. - 상속을 이용하면 동일한 내용을 여러 번 작성 할 필요가 없다.(중복 제거) - private 접근 제한을 갖는 필드와 메소드는 상속 대상에서 제외된다. 1.2 상속이 가능한 경우 - IS-A 관계가 성립할 때 (A는 B다.) ex) 전기차는 자동차이다. 학생은 사람이다. extend - HAS-A 관계가 성립할 때 (A는 B를 가지고 있다.)(비추천!!) ex) 자동차는 핸들을 가지고 있다. 사람은 가방을 가지고 있다. 객체 생성 1.3 상속 문법 class 부모클래스(=슈퍼클래스) { } class 자식클래스(=서브클래스) ex..
1.1 static - 사전적 의미 : 정적 - 정적 : 미리 만듦 - 동적 : 나중에 만듦 (new) - 정적 멤버는 클래스에 고정된 멤버로서 객체를 생성하지 않고 사용할 수 있는 필드와 메소드를 말한다. - 객체마다 가지고 있어야 할 데이터라면 인스턴스 필드로 선언하고, 객체마다 가지고 있을 필요성이 없는 공용적인 데이터라면 정적 필드로 선언하는 것이 좋다. 1.2 static 사용 이유 - 모든 객체(인스턴스)가 공유하기 위해서 - 객체(인스턴스) 생성 (new) 없이 클래스를 사용하기 위해서 1.3 static 동작 - static 멤버(필드나 메소드)는 프로그램 실행 직전에 미리 만들어진다. - 객체(인스턴스) 생성 되기 전에 미리 만들어진다. - 객체(인스턴스) 생성(new)없이도 만들어진다...
1.1 this - 생성된 객체(인스턴스) 자신의 주소(참조, 레퍼런스) - 생성된 객체(인스턴스)가 자기 자신을 호출하는 방식 - 클래스 구성 요소에 this 활용 필드 : this.필드 생성자 : this()- 생성자(constructor) 내부에서만 사용가능!
1.1 생성자(Constructor)란? - 객체(인스턴스)가 생성될 때 자동으로 호출되는 메소드. - 모든 객체(인스턴스)는 생성될 때 반드시 생성자를 호출한다.(생성자를 호출하지 않는 인스턴스는 없다!) - 개발자가 생성자를 만들지 않으면 아무 일도 하지 않는 '디폴트 생성자'가 호출된다. class Person { Person(){}; // 디폴트 생성자 Car() == 생성자 car객체(내가 지정함) Person man = new Person();-> Person() == 생성자 man객체(내가 지정함) Circle circle = new Circle();-> Circle() == 생성자 circle객체(내가 지정함) - 생성자 선언 방법 ①클래스이름(②매개변수선언) { 생성자 본문; } ① 클래..
1.1 메소드 - 객체의 동작에 해당하는 중괄호 {} 블록을 말하며 해당 블록의 이름이 메소드 이다. - 메소드는 기본적으로 '메소드이름()'의 형태(괄호를 붙인 형태)를 갖추기에 괄호가 붙는 것들은 전부 메소드라고 생각하면 된다. 1.2 메소드 작성 규칙 1) 메소드 정의 (메소드 만들기) 2) 메소드 호출 (메소드 사용하기) 3) 메소드 정의 방법 형식 ①리턴타입 ②메소드이름 (③매개변수선언, ...) { 메소드본문; ④return 리턴값; } ① 리턴타입 - 메소드의 결과가 가지는 자료형 - 메소드의 결과가 없다면 void 를 명시함(④이 없어야 함) ② 메소드이름 - 변수이름처럼 개발자가 직접 생성 - 숫자로 시작하면 안되고 '$', '_'를 제외한 특수문자를 사용할 수 없다. - camel ca..
1.1 객체지향 언어란(OOP:Object Oriented Programming)? - 부품에 해당하는 객체들을 먼저 만들고, 이것들을 하나씩 조립해서 완성된 프로그램을 만드는 기법 - 특징으로는 캡슐화(Encapsulation), 상속(Inheritance), 다형성(Polymorphism)이 있다. 1.2 객체란(Object)? - 자신의 속성을 가지고 있는 다른 것과 식별 가능한 것 - 자바에서는 이 속성들을 각각 필드(Field)와 메소드(Method)라고 부른다. - 클래스로부터 만들어진 객체를 해당 클래스의 인스턴스(instance)라고 한다. 1.3 객체 생성(인스턴스 생성) - 정의된 클래스를 이용하여 '객체'를 생성한다. - 생성 방법 클래스명 객체명 = new 클래스명(); 클래스명 인..
2.1 메모리 할당 - 메모리상에 어떤 값을 저장하게 되면 그 값에 대한 메모리 번지가 만들어지는 데, 메모리 번지는 16진수로 표현된다. 메모리번지를 이용하여 개발자들이 코드를 작성할 경우, 16진수로 저장된 값의 메모리 번지를 알고 있어야 한다. 위와 같이 불편함이 있기 때문에 메모리 번지를 대체하는 이름을 사용하는 데, 이것이 변수, 배열명, 객체명, ArrayList등이다. 따라서 변수, 배열명, 객체명, ArrayList등은 각각의 저장위치를나타내는 메모리 번지의 별명이다.
1.1 배열 - 같은 타입의 데이터를 연속된 공간에 나열시키고, 각 데이터에 인덱스(index)를 부여해놓은 자료구조이다. - 같은 타입의 데이터만 저장할 수 있다. - 배열의 인덱스는 0부터 시작한다. - 배열이 생성되면 배열의 길이를 length 필드 값으로 사용할 수 있다. 1.2 배열 선언 - 선언과 동시에 저장할 수 있는 데이터 타입이 결정된다. - 한 번 생성된 배열은 길이를 늘리거나 줄일 수 없다.(동적 배열 제외) 1.3 다차원 배열 - 예를 들어 2(행)x3(열)의 배열을 만들 수 있다. ex) int[][] scores = new int[2][3]; 1.4 객체를 참조하는 배열 - 기본 타입(byte, char, short, int, long, float, double, boolean)..
1.1 코드 실행 흐름 제어 - 자바 프로그램을 개발자가 원하는 방향으로 바꿀 수 있도록 해주는 것이 제어문이다. - 제어문은 조건식과 중괄호{} 블록으로 구성되는데, 연산 결과에 따라 블록 내부의 실행 여부가 결정된다. - 제어문의 종류는 조건문과 반복문이 있는데, 조건문에는 if, switch문이 있고 반복문에는 for, while, do-while문이 있다. - 제어문 블록 내부에는 또 다른 제어문을 사용할 수 있다. if문 내부에 for문을 가질 수 있고, while문도 가질 수 있다. 그렇기 때문에 개발자가 원하는 매우 복잡한 흐름 제어도 가능하다.