반응형

JAVA 55

[Java] static 변수

/* * * 0. 소스 코드 작성 및 컴파일 후 클래스 실행 * 1. 클래스 로딩 * => static 변수 및 메서드가 메모리에 로딩됨 * 2. main() 메서드 호출(실행) * 3. 인스턴스 생성 * => 인스턴스 변수 및 메서드가 메모리에 로딩됨 * 4. 인스턴스 메서드 호출(실행) * => 로컬 변수가 메모리에 로딩됨 * 5. 결과 출력 * 6. 프로그램 종료 * static 키워드 * - 클래스, 메서드, 변수의 제한자로 사용 * - 메서드 또는 변수에 static 키워드를 사용할 경우 * 인스턴스 멤버가 아닌 클래스(= 정적 = static) 멤버로 취급됨 * * * - 멤버변수에 static 키워드를 사용할 경우 클래스(정적) 멤버로..

JAVA 2021.10.29

[Java] package

/* package 키워드 * - 특정 클래스 파일 첫 번째 라인에 해당 클래스가 소속된 패키지명 명시 * - 실제 클래스 파일의 위치와 패키지명이 다를 경우 오류 발생 * - 반드시 주석을 제외한 첫 번째 라인에서 사용 * => 클래스 내에서 단 한 번만 사용 가능 * - 패키지 키워드 사용 기본 문법 * 소스코드 첫 번째 라인에서 * package 패키지명; * * import 키워드 * - 원래 클래스 이름 지정 시 패키지명.클래스명 형태로 지정해야하지만 * 특정 패키지를 자주 사용하는 경우 import 문을 사용하여 * 해당 패키지와 클래스명을 지정할 경우 패키지명 생략 가능함 * (단, 같은 패키지 내의 클래스는 패키지명을 생략 가능!) * - java.lang 패키지는 유일하게 import 없..

JAVA 2021.10.29

[Java] 생성자 this()

public class Ex5 { public static void main(String[] args) { //생성자 this() //자신의 생성자 내에서 자신의 또 다른 생성자를 호출 //-레퍼런스 this 사용과 동일하게 자신의 인스턴스에 접근하여 // 다른 오버로딩 생성자를 호출하는 용도로 사용 //- 생성자 오버로딩 시 인스턴스 변수에 대한 초기화 코드가 중복되는데 //초기화 코드 중복을 제거하는 용도로 사용 MyDate d1 = new MyDate(); System.out.println(d1.year + "/" + d1.month + "/" + d1.day); MyDate d2 = new MyDate(2021); System.out.println(d2.year + "/" + d2.month + ..

JAVA 2021.10.29

[Java] this 키워드

public class Ex4 { public static void main(String[] args) { //this 키워드 //자신의 인스턴스 주소값을 저장하는 참조 변수 //=>개발자가 생성하는 것x 자바에 의해 자동으로 생성됨 //모든 인스턴스 내에는 this가 존재,자신의 인스턴스 주소가 저장 //=> 즉, 인스턴스 마다 this에 저장된 값이 서로 다름 Person4 p = new Person4("홍길동", 20); p.showPersonInfo(); p.setName("이순신"); p.setAge(44); p.showPersonInfo(); } } class Person4 { private String name; private int age; public Person4(String name,..

JAVA 2021.10.29

[Java] 파라미터 전달 방식의 차이(기본데이터타입,참조데이터타입)

public class Ex2 { public static void main(String[] args) { /* * 메서드 호출 시 값 전달 방식에 따른 차이 * =메서드 파라미터로 기본 데이터타입과 참조데이터타입 전달 시 차이 */ Money m = new Money(); PassByTest pbt = new PassByTest(); // 1. 메서드 파라미터로 기본 데이터타입 변수 값을 전달할 경우 System.out.println("changePrimitiveType()메서드 호출 전 money =" + m.money); pbt.changePrimitiveType(m.money); System.out.println("changePrimitiveType()메서드 호출 후 money =" + m.mon..

JAVA 2021.10.29

[Java] Variable Arguments(가변형 인자)

public class Ex { public static void main(String[] args) { /* * 가변형 인자 = 비정형 인자(Variable Arguments, VARARGS) * - 메서드 파라미터를 하나의 인자만 사용하여 다양하게 전달받는 기능 * - 동일한 타입의 파라미터를 0개 ~ 무한대로 전달받아 배열로 관리 * => 전달받는 인자(데이터)의 갯수에 따라 자동으로 배열 생성됨 * - 메서드 파라미터(매개변수) 선언 시 데이터타입 뒤에 ... 기호를 표기 * ex) public void add(int... nums) {} * - 가변 인자를 사용한 메서드 대표적인 예 : printf() 메서드 * => System.out.printf(String str, Object...objs..

JAVA 2021.10.29

[Java] 생성자 오버로딩(Constructor Overloading)

public class Ex2 { public static void main(String[] args) { //생성자 오버로딩 //-메서드 오버로딩과 동일 //- 생성자 호출 시 다양한 형태의 파라미터를 전달하여 //-객체를 다양하게 초기화 하는 목적 Person p = new Person("한국", "홍길동", "901010-1234567"); p.showPersonInfo(); System.out.println("-----------------------------"); // 문자열 2개만 전달할 경우 이름, 주민번호만 초기화하고 // 국가는 "대한민국"으로 초기화하는 생성자 호출 Person p2 = new Person("홍길동", "901010-1234567"); p2.showPersonInfo(..

JAVA 2021.10.28

[Java] 메서드 오버로딩(Method Overloading)

/* * 메서드 오버로딩(Method Overloading) = 메서드 다중 정의 * - 동일한 이름의 파라미터가 다른 메서드를 여러번 정의하는 것 * - 비슷한 기능을 수행하지만, 전달받은 데이터의 타입이 다른 경우 * 메서드 이름을 각각 따로 정의하지 않고, 동일한 이름으로 * 파라미터만으로 구분되는 메서드를 여러개 정의하는 것 * - 주의사항! 메서드 시그니쳐(이름, 리턴타입, 파라미터, 접근제한자) 중 * 파라미터를 제외한 나머지는 동일하게 정의함 * => 외부에서 메서드를 호출하는 시점에 이름이 동일한 메서드 간에 * 전달되는 데이터(파라미터)만으로 각 메서드가 구분되어야 함 * * * 1. 메서드 파라미터의 데이터타입이 달라야 함 * 2. 메서드 파라미터의..

JAVA 2021.10.28

[Java] 생성자(Constructor)

/* * 생성자(Constructor) * - 클래스를 사용하여 인스턴스를 생성할 때 호출되는 메서드 형태 * => new 키워드 뒤에 생성자 호출 코드가 기술됨 * - 주로 인스턴스 변수를 초기화하는 용도 또는 * 인스턴스 생성 시 초기에 수행할 작업을 기술하는 용도 * - 메서드와 형태가 유사하나 차이점 두 가지 존재 * 1) 선언부에 리턴타입이 없음 * (리턴값이 없는 것이 아니라 리턴타입 자체를 기술하지 않음) * 2) 생성자 이름이 클래스 이름과 동일함 * - 개발자가 클래스 정의 시 생성자를 하나도 정의하지 않으면 * 컴파일러에 의해 자동으로 기본(Default) 생성자가 생성됨 * - 메서드와 유사한 형태이므로 파라미터가 없을 수도 있고 있을 수도 있음 * - 생성자를 별도로 호출할 수 없으..

JAVA 2021.10.28

[Java] Getter / Setter 메서드

/* * Getter / Setter 메서드 * - 클래스 내에서 private 접근제한자로 선언된 멤버변수 등에 접근을 위해 * 클래스 내에서 제공하는 중개 역할의 메서드 * - public 접근제한자를 사용하여 정의(누구나 접근 가능) * 1. Getter : 내부 멤버변수의 값을 외부로 리턴하는 메서드 * => getXXX() 형식의 메서드 이름을 사용하여 정의 * 이 때, XXX 은 접근할 멤버변수의 이름을 사용 * ex) 멤버변수 num 에 접근하는 Getter 메서드 이름 : getNum() * => 파라미터는 없고, 리턴값만 있는 메서드 * ex) public int getNum() {} * 2. Setter : 외부로부터 값을 전달받아 내부 멤버변수에 저장하는 메서드 * => setXXX(..

JAVA 2021.10.28
반응형