생성자란 앞서 살펴봤던 클래스의 4가지 구성요소 중 하나로서, 인스턴스가 생성될 때 호출되는 이다. 구체적으로는 Car bmw = new Car(); 와 같이 인스턴스를 생성할 때, 가장 뒤에 쓰인 Car()가 바로 그 생성자이다. 추가로 생성자는 클래스의 구성요소이긴 하나 멤버는 아니라고 언급했었는데, 이 때문에 생성자는 상속되지 않고, 오버 라이딩의 대상이 되지도 않는다. 생성자는 메서드라고 편의상 적어두긴 했으나, 일반적인 메서드와는 크게 두 가지 차이점을 가지는데 생성자의 이름은 반드시 클래스의 이름과 같아야 한다. 생성자는 리턴 타입이 존재하지 않는다. 따라서 void 키워드도 쓰지 않는다. 가 그것이다. 즉, 엄밀하게 말하면 생성자는 메서드가 아니다. 메서드와는 다르다. 메서드와는..! 구체..
메서드(Method) 메서드는 클래스 영역에 선언된 함수이다. 더 정확하게는 "특정 작업을 수행하는 명령문들의 집합"이며, 클래스의 기능에 해당한다. 메서드는 다음과 같이 선언한다. public static int add(int x, int y) { // 메서드 시그니처 int result = x + y; // 메서드 바디 return result; } 뜯어보자면 메서드 시그니처에 해당하는 부분에는 메서드에 대한 정보를, 메서드 바디에 해당하는 부분에는 해당 메서드가 호출될 시 수행하는 작업에 대한 정보를 담고 있다. 계속 보자면, 위 메서드는 이름이 add이며, int 타입 두 개의 값(x, y)을 매개변수로 입력받아 더해주는 메서드이다. 메서드 이름 add 앞의 int는 이 메서드의 반환 타입을 말하..
필드(field) 필드는 클래스에 포함된 변수를 말한다. 이 변수는 또 세 가지로 나뉘는데, 클래스 변수(cv, class variable) 인스턴스 변수(iv, instance variable) 지역 변수(lv, local variable) 가 그것이다. 세 유형은 클래스 내에서 선언된 위치에 따라 한 번, static 키워드에 따라 또 한 번 나눠지는데, 간단히 예를 들면 다음과 같다. class Example { // => 클래스 영역 int instanceVariable; // 인스턴스 변수 static int classVariable; // 클래스 변수(static 변수, 공유변수) void method() { // => 메서드 영역 int localVariable = 0; // 지역 변수({}..
객체의 생성 지난 객체와 클래스 글에서 new 키워드를 이용해 객체를 생성하는 법을 확인했다. https://gnidinger.tistory.com/381 [Java]클래스(Class)와 객체(Object) 객체지향 프로그래밍(Object Oriented Progamming)은 객체가 무엇인지 아는 것에서 시작한다. 객체를 알기 위해선 객체를 생성하는 도구인 클래스에 대해서도 알아야 하는데, 각각의 개념은 다음과 같 gnidinger.tistory.com class CarTest { public static void main(String[] args) { Car bmw = new Car(); // Car 클래스로 만들어진 bmw 인스턴스 Car tesla = new Car(); // Car 클래스로 만들..
객체지향 프로그래밍(Object Oriented Progamming)은 객체가 무엇인지 아는 것에서 시작한다. 객체를 알기 위해선 객체를 생성하는 도구인 클래스에 대해서도 알아야 하는데, 각각의 개념은 다음과 같다. 객체(Object) - 우리가 인지할 수 있는 모든 것. 사용할 수 있는 실체 클래스(Class) - 객체를 정의한 설계도 또는 틀 클래스는 객체 자체가 아니라 객체를 생성하는 데 사용되는 하나의 틀에 불과하다. 클래스를 통해 생성된 객체를 인스턴스(Instance)라 부른다. 조금 추상적인 이야기라 이해하는데 어려움이 있었지만, 대략 위와 같은 단어에 익숙해지면 되는 듯하다. 객체와 인스턴스는 거의 같은 개념이지만 조금 다르다는 것도 알 수 있었다. 추가로 최초의 클래스를 잘 만들어 두면 ..
첫 제출 과제로 간단한 계산기 만들기가 주어졌다. 숫자 두 개를 입력받아 사칙연산을 하는 계산기를 만드는 과제였는데, 간단한 조건문을 이용해 비교적 쉽게 만들어낼 수 있었다. import java.util.Scanner; public class Calculator { public static void main(String[] args) { System.out.println("===Java Calculator==="); Scanner input = new Scanner(System.in); System.out.print("첫 번째 숫자를 입력합니다: "); double num1 = input.nextDouble(); System.out.print("연산자를 입력합니다: "); String cal = inp..
Arrays.copyOf와 Arrays.copyOfRange는 배열을 복사할 때 쓰이는 메서드이다. 각각 사용법은 다음과 같다. 1. Arrays.copyOf(int[] original, int length); :original 배열에서 length만큼의 길이를 복사한다(0번 인덱스부터 시작). 2. Arrays.copyOfRange(int[] original, from, to); :original 배열의 from 인덱스부터 to 인덱스 직전까지 복사한다. import java.util.Arrays; public class Main { public static void main(String[] args) { int[] arr1 = {0, 1, 2, 3, 4, 5}; for(int i = 0; i < ar..
System.arraycopy는 배열을 효율적으로 복사하는 메서드이며, 총 5개의 파라미터가 존재한다. System.arraycopy(src, srcPos, dest, destPos, length); 로 사용하며 각 파라미터의 의미는 다음과 같다. src - 복사하고자 하는 배열 srcPos - 복사하고자 하는 배열의 시작위치 dest - 복사 목적지 destPos - 목적지의 복사 시작점 length - 복사하고자 하는 배열의 원소 개수 System.arraycopy(a, 0, b, 0, n); 로 호출하면 a 배열의 0번 원소부터 n개의 원소를 b 배열의 0번 인덱스로 붙여넣는 것이다. public class Main { public static void main(String[] args) { int..
- Total
- Today
- Yesterday
- 칼이사
- spring
- BOJ
- 면접 준비
- a6000
- 유럽
- 야경
- 백준
- Algorithm
- 스트림
- java
- 지지
- 세계여행
- 리스트
- 세모
- 알고리즘
- 남미
- Backjoon
- 파이썬
- 중남미
- 동적계획법
- 여행
- RX100M5
- 세계일주
- 스프링
- 자바
- 맛집
- 기술면접
- Python
- 유럽여행
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |