목록개발공부/JAVA (63)
개발자 도전기
1. final 키워드 final 키워드는 최초 한 번의 값을 저장하면 그 값이 최종값이 되어 더이상 수정할 수 없다. 사용시에는 초기값을 무조건 넣어주어야 하며 그렇지 않으면 컴파일 에러가 발생한다. 초기값을 넣는 방법은 final 필드 선언시에 대입하거나 생성자에서 대입하는 법이 있다. 정적 블록에서도 초기화가 가능하다. 2. 상수 변할 수 있는 변수와 달리 상수는 항상 같은 값을 가진다. 원주율 파이나 지구의 둘레, 혹은 프로그램 안에서 항상 고정된 값을 가지는 수를 상수로 선언한다. 이러한 값들은 인스턴스가 각각 가지고 있을 필요가 없다. 그렇기 때문에 static 키워드를 사용하여 모든 인스턴스가 공유할 수 있도록 한다. 따라서 상수는 변함없는(final) 값이면서 공통된(static) 값이기 ..
1. 정적 멤버 자바는 클래스 로더를 이용해서 클래스를 메소드 영역에 저장하고 사용한다. 클래스 파일의 바이트가 로드되는 곳이기 때문에 메소드 영역은 클래스 영역, 스태틱 영역이라고도 한다. 정적 멤버들은 메소드 영역의 클래스에 고정적으로 위치하는 멤버를 말한다. 그렇기 때문에 정적 멤버는 객체를 생성할 필요 없이 클래스를 통해 바로 사용이 가능하다. 2. 정적 멤버 선언 필드와 메소드는 모두 정적 멤버가 될 수 있다. 정적 멤버를 선언하려면 static 키워드를 앞에 붙여주면 된다. public class Car{ // 정적 필드 선언 static String tire; // 정적 메소드 선언 static void run(){} } 객체마다 가지고 있을 필요가 없는 공용적인 필드는 정적 필드로 선언하는..
1. 생성자란? 생성자는 객체를 생성한 후 호출되어 객체를 초기화시키는 역할을 한다. 클래스 변수 = new 클래스(); // 클래스()
메소드 선언은 객체의 동작을 실행 블록으로 정의하는 것을 말하고, 메소드 호출은 실행 블록을 실제로 실행하는 것을 말한다. 메소드는 객체 내부에서도 호출되지만 다른 객체에서도 호출될 수 있다. 1. 메소드 선언 리턴타입 메소드명 (매개변수, ...) { 실행 블록 } 리턴 타입 메소드가 호출한 곳으로 전달하는 결과값의 타입을 말한다. 리턴값이 없는 메소드는 void로 작성해야 한다, 리턴 타입이 있는 메소드는 반드시 실행 블록 안에서 return 문으로 리턴값을 지정해야 한다. 메소드명 메소드명은 첫 문자를 소문자로 시작하고, 캐멀 스타일로 작성한다 매개변수 (parameter) 매개변수는 메소드를 호출할 때 전달한 매개값을 받기 위해 사용된다. 매개값(argument)는 인자값, 인수라고도 불리며 실제..
필드는 객체의 데이터를 저장하는 역할을 한다. 객체의 데이터는 고유 데이터, 현재 상태 데이터, 부품 데이터가 있다. 1. 필드 선언 필드를 선언하는 방법은 변수를 선언하는 방법과 동일하다. 단, 반드시 클래스 블록에서 선언되어야만 필드 선언이 된다. 타입 필드명 [ = 초기값]; 2. 필드의 기본값 초기값을 제공하지 않을 경우 필드는 객체 생성 시 자동으로 기본값으로 초기화된다. public class C03Field { public static void main(String[] args) { C03Car car1 = new C03Car(); System.out.println(car1.color); // null System.out.println(car1.price); // 0 System.out.pr..
객체 지향 프로그래밍 부품들을 하나씩 조립해서 완성품을 만들듯 부품에 해당하는 객체들을 먼저 만들고, 이 객체들을 하나씩 조립해서 완성된 프로그램을 만드는 기법을 객체 지향 프로그래밍이라 한다 1. 객체란? 객체란 물리적으로 존재하거나 개념적인 것 중에서 다른 것과 식별 가능한 것을 말한다. 물리적인 자동차, 사람, 자전거 등과 개념적인 학과, 강의, 주문 등도 모두 객체가 될 수 있다. 객체는 속성과 동작으로 구분된다, 사람은 이름, 나이 등의 속성과 웃다, 걷다 등의 동작이 있다. 속성은 필드, 동작은 메소드이다 현실 세계의 객체를 소프트웨어 객체로 설계하는 것을 객체 모델링이라고 한다. 2. 객체의 상호작용 사람이 컴퓨터를 이용하고, 컴퓨터는 출력 결과를 사람에게 리턴하는 상호작용을 하듯이 객체 지..
프로그래머스 문제풀이에 도움이 되는 형변환 방법들을 모아봤습니다. char to int Character.forDigit(int, radix) radix : 진수 Character.getNumbericValue() char c = '1'; int n = Character.getNumericValue(c); System.out.println(n); // 결과: 1 int to char (char) int 타입캐스팅 활용 Character.forDigit(int, radix) String to Int Integer.parseInt() String str = "123"; int value = Integer.parseInt(str); System.out.println(value); // 123 Int to St..
문자열 비교 자바의 문자열은 String 객체에 저장되며 변수에는 객체의 번지가 대입된다. 문자열 리터럴이 동일한 경우에는 String 객체를 공유한다. new 연산자로 new String 객체를 생성했다면 새로 생성된 문자열은 기존 String 객체와 변수의 번지를 공유하지 않는다. String str1 = "abc"; String str2 = "abc"; new String str3 = "abc"; str1 == str2; // true str2 == str3; // false 동일한 String 객체든 다른 String 객체든 상관없이 내부 문자열만을 비교할 경우에는 String 객체의 equals() 메소드를 사용한다. boolean result = str1.equals(str2); 문자 추출 c..

다차원 배열이란 배열 속에 또 다른 배열이 들어있는 것을 말한다. 배열 변수는 1차원 배열의 참조값을 가지고, 1차원 배열의 값은 2차원 배열의 참조값을 가진다. 다음과 같이 선언하고 접근할 수 있다 int[][] arr = { { 80, 90, 60} { 89, 86 } } int[][] arr1 = new int[3][2]; // 3행 2열 // arr1의 원소의 개수는 3개, 그 타입은 int[] // arr1[0] 각 원소의 원소의 갯수는 2개, 그 타입은 int[] // 2차원 배열의 길이가 다르게 설정 arr1[0] = new int[3]; // 값 대입 arr[1][2] = 5; // Arrays.toString()을 사용하면 배열을 문자열로 확인할 수 있다 System.out.println..
배열은 연속된 값을 인덱스에 따라 저장한 자료구조이다. 자바의 배열은 다음과 같은 특징을 가지고 있다. - 배열은 같은 타입의 값만 저장할 수 있다 - 배열의 길이는 늘리거나 줄일 수 없다 // 배열 : 같은 타입의 값을 여러개 갖는 자료형 // 원소타입명[] // int 타입의 원소(element, item) 들을 갖는 배열 int[] arr; // double 타입의 원소들을 갖는 배열 double[] brr; // String 타입의 원소들을 갖는 배열 String[] crr; // 실제 int 배열 객체를 만들고 변수에 할당 arr = new int[]{5, 6, 7}; 배열 역시 Null 값을 가질 수 있고 Null 값을 변수로 가진 배열을 사용하려고 하면 예외가 발생한다. 배열에는 다음과 같이..