본문 바로가기
[TIL] 생성자 , 초기화 생성자란 Constructor ? 생성자는 new 연산자와 같이 사용되며 객체를 생성할 때 호출되고 객체 생성후 생성자 몸체를 실행하여 초기화를 담당한다. 생성자는 인스턴스 변수의 초기화 및 객체가 생성될 때 실행해야 할 작업을 위해 사용된다. 자바의 모든 클래스는 생성자가 반드시 존재하며 하나이상 가질 수 있다. 클래스와 동일한 이름을 갖는다. 하나의 클래스에는 하나이상의 생성자를 갖는다. 생성자는 리턴 타입이 존재하지 않는다. 생성자는 일반 메소드처럼 호출할 수 없으며 객체를 생성할때 new 다음에 기술한다. 생성자는 중복 정의가 가능하다. 생성자를 만들지 않으면 컴파일러는 아무런 코드도 없는 디폴드 생성자를 만든다. public 클래스명(){} 클래스 초기화 JVM머신에 의해 해당 클래스가 메모리에.. Language/JAVA 2020. 8. 4.
[TIL] this , this() this 란? 현재 클래스의 인스턴스로 객체 자신에 대한 참조 값을 갖는다. this는 현재 클래스의 인스턴스를 참조하기 때문에 생성자나 인스턴스 메소드 내에서만 사용하며 클래스 메소드에서는 사용할 수 없다. 특징" 지역변수(메소드 내에 선언된 변수나 메소드 인수)와 멤버변수(인스턴스 변수나 클래스 변수)의 이름이 동일한 경우 지역 변수가 우선순위가 높다. 따라서 인스턴스 변수를 명확하게 접근하기 위해서 this키워드를 사용한다. 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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55.. Language/JAVA 2020. 8. 4.
[TIL] 비정형 인자 (가변 인수) 비정형 인자란? Varargs 같은 타입의 매개변수를 가변적으로 선언할 때 사용한다. 메소드를 정의할 때 매개변수의 타입 다음에 생략 부호인 '...' 세개의 점을 붙여 선언한다. 대표적인 예로 PrintStream 클래스의 printf(_)가 있다. 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 package ex0804; public class Varargs_Ex1 { public static void main(String[] args) { User10 u = new User10(); int s; s=u.sum(1,3,5,7,9); System.out.println(s); s=u.sum(1,2,3); System... Language/JAVA 2020. 8. 4.
[TIL] 재귀 호출 재귀 호출이란? 메소드 내에서 메소드 자기 자신을 호출하는 방식 특징: 코드가 간결하며 오류 수정이 용이하다. 실행시간 관점에서 처리속도가 반복문보다 비효율적이다. 하나 이상의 종료 조건을 사용하여 재귀 호출을 종료 하도록 해야한다. 모든 재귀 호출은 원 문제를 부분 문제로 줄여가면서 종료 조건이 될 때 까지 반복한다. 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 package ex0804; public class RecursiveCall_Ex2 { public static void main(String[] args) { User7 ob = new User7(); int s; s = ob.sum(10); System.out.p.. Language/JAVA 2020. 8. 4.
[TIL] 메소드 오버로딩 메소드 오버로딩이란? 한 클래스 내에서 이름이 같은 메소드를 정의하는 것 조건 매개변수의 타입이 다르거나 매개변수의 개수가 달라야한다. 오버로딩 된 메소드는 매개변수에 의해서만 구분된다. 매개변수는 같으나 반환형이 다를 경우 컴파일 오류가 발생한다. 메소드 리턴 타입은 오버로딩을 구현하는데 아무런 영향을 주지 못한다. 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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 package ex0804; public class Overloading_Ex1 { public static void main(String[] a.. Language/JAVA 2020. 8. 3.