일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 클래스
- 생성자
- node
- 기본 생성자
- 인코딩
- 화살표 함수
- Override
- 자바의 특징
- 어노테이션
- 패키지
- 디코딩
- 익명함수
- 라우터
- router
- Arrow function
- 자바
- Super
- 문자집합
- final 클래스
- package
- 유니코드
- 객체지향 #객체지향 특징
- import
- 즉시 실행 함수
- 메소드 재정의
- 노드
- final
- annotation
- final 메소드
- Anonymous Functions
- Today
- Total
목록JAVA (19)
개인 공부 블로그
인스턴스 멤버 - 객체(인스턴스)를 생성한 후 사용할 수 있는 필드와 메소드. - 인스턴스 필드와 메소드는 객체에 소속된 멤버이기 때문에 객체 없이는 사용불가. - 필드는 객체마다 따로 존재하고, 메소드는 객체마다 존재하지 않고 메소드 영역에 저장되고 공유된다. this 객체 내부에서 인스턴스 멤버에 접근하기 위해 this를 사용. 객체 외부에서 인스턴스 멤버에 접근하기 위해 참조변수를 사용하는 것처럼. this.model은 자신이 가지고 있는 model 필드라는 뜻이다. this는 주로 생성자와 메소드의 매개변수 이름이 필드와 동일한 경우, 인스턴스 멤버인 필드를 명시하고자 할 때 사용됨.
- 객체를 생성할 때 호출되어 객체의 초기화를 담당한다. - 생성자를 실행시키지 않고는 클래스로부터 객체를 만들 수 없다. 기본 생성자 - 모든 클래스는 생성자가 반드시 존재, 하나 이상을 가질 수 있음. - 기본 생성자는 생략 가능. 클래스 내부에 생성자 선언을 생략하면 컴파일러가 기본 생성자를 바이트 코드에 자동으로 추가시킨다. - 그러나 클래스에 명시적으로 선언한 생성자가 한 개라도 있으면 컴파일러는 기본 생성자를 추가하지 않는다. - 필드가 객체 생성 시점에서 외부에서 제공되는 값으로 초기화되어야 한다면 생성자에서 초기화를 해야한다. this 생성자의 매개변수는 관례적으로 필드와 동일한 이름으로 사용. 이 경우 동일한 이름의 매개변수가 사용 우선순위가 높기 때문에 생성자 내부에서 해당 필드에 접근..
객체를 위한 설계도. 클래스 선언 public Class Car { } class Tire{ { - 일반적으로 소스 파일당 하나의 클래스를 선언. 하지만 두 개 이상의 클래스 선언도 가능 - 소스 파일을 컴파일 하면 바이트 코드 파일은(.class) 클래스를 선언 한 개수만큼 생긴다. 결국 소스 파일은 클래스 선언을 담고 있는 저장 단위일 뿐, 클래스 자체가 아니다! 위 코드를 컴파일하면 Car.class, Tire.class가 각각 생성됨. - 파일 이름과 동일한 이름의 클래스 선언에만 public 접근 제한자를 붙일 수 있다. 클래스의 용도 - 라이브러리(API:Application Program Interface)용, 실행용으로 두 가지 용도가 있다. - 라이브러리 클래스는 다른 클래스에서 이용할 ..
캡슐화(Encapsulation) - 객체의 필드, 메소드를 하나로 묶고 실제 구현 내용을 감추는 것. - 외부 객체는 객체 내부의 구조를 알지 못하며 객체가 노출해서 제공하는 필드와 메소드만 이용할 수 있다. - 필드와 메소드를 캡슐화하여 보호하는 이유는 외부의 잘못된 사용으로 객체가 손상되지 않도록 하기 위함. - 접근 제한자를 통해 사용 범위를 제한함으로써 외부로부터 보호. 상속(Inheritance) - 상위 객체가 가지고 있는 필드와 메소드를 하위 객체에게 물려준다. - 상위 객체를 재사용해서 하위 객체를 쉽고 빨리 설계할 수 있도록 도와준다. - 이미 잘 개발된 객체를 사용해 새로운 객체를 만들기 때문에 모드의 중복을 줄여준다. - 상위 객체의 수정으로 모든 하위 객체들의 수정 효과를 가져와 ..
생성 데이터타입[] 변수 = {값0, 값1, ...}; 배열 변수를 미리 선언 후 값이 나중에 결정되는 상황이라면 new 연산자를 사용하여 값을 지정해주면 된다. 변수 = new 타입[] {값0, 값1, ...}; 배열을 생성함과 동시에 메소드의 매개값으로 사용하고자 할 때는 반드시 new 연산자를 사용해야 한다. int add(int[] scores){...} int result = add( {91, 83, 90} ) // 컴파일 에러 int result = add( new int[]{91, 83, 90} ); 값 목록이 없지만 향후 저장할 배열을 미리 만들고 싶을때도 new 연산자 사용 타입[] 변수 = new 타입[길이]; new 연산자로 배열을 처음 생성할 경우 배열은 자동적으로 기본값으로 초기화..
- 문자열은 String 객체로 생성되고 변수는 String 객체를 참조 - 문자열 리터럴이 동일하면 String 객체를 공유한다. - new로 String 객체를 생성할 경우는 리터럴이 동일해도 다른 객체를 참조 // 같은 객체 참조 String name1 = "홍길동"; String name2 = "홍길동"; // 다른 객체 참조 String name1 = new String("홍길동"); String name2 = new String("춘향"); 문자열 비교 ● equals() 객체가 아닌 문자열을 비교하려면 equals()를 사용해야 한다.
참조타입 변수는 힙 영영의 객체를 참조하지 않는다는 뜻으로 null값을 가질 수 있다. null 값도 초기값으로 사용할 수 있기 때문에 null로 초기화된 참조변수는 스택 영역에 생성됨. -> int[] intArray = null; 일 때, intArray는 힙 영역이 아니라 스택 영역에 생성되는건가? 참조 타입 변수가 null을 가지고 있을 경우 참조 타입 변수는 사용할 수 없다. 참조할 객체가 없으므로 사용할 수 없는 것. NullPointerException null 값을 가지고 있는 참조 타입 변수를 사용하면 발생하는 예외. 이 예외가 발생하면 예외가 발생된 곳에서 객체를 참조하지 않은 상태로 참조 타입 변수를 사용하고 있다는 것!!
기본 타입 - 정수, 실수, 문자, 논리 리터럴 저장 - 실제 값을 저장 참조 타입 - 배열, 열거, 클래스, 인터페이스 타입 - 메모리의 번지를 저장 메모리 영역변수 - 스택 영역에 생성 객체 - 힙 영역에 생성
자바의 특징 1. 이식성이 높다 - 운영체제의 종류에 상관없이 자바 실행 환경(JRE:Java Runtime Environment)이 설치되어 있는 모든 운영체제에서 실행 가능 2. 객체 지향 언어이다. - 자바는 100% 객체 지향 언어이다. - 처음부터 객체를 고려하여 설계되었기 때문에 캡슐화, 상속, 다형성 기능을 완벽하게 지원 3. 함수적 프로그래밍을 지원한다. - 함수적 프로그래밍은 대용량 데이터의 병렬 처리, 이벤트 지향 프로그래밍에 적합 - 함수적 프로그래밍을 위해 람다식을 자바 8부터 지원 람다식을 사용하면 컬렉션의 요소를 필터링, 매핑, 집계 처리하는데 쉬워지고 코드가 매우 간결해짐 4. 메모리를 자동으로 관리한다. - C++은 메모리에 생성된 객체를 제거하기 위해 개발자가 직접 코드를 ..