반응형

전체 글 154

[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

[Java] 접근제한자

/* * 접근제한자 * - 클래스, 메서드, 멤버변수 등의 접근 제한 용도로 사용하는 키워드 * - (넓음) public > protected > default > private (좁음) * => 단, default 접근제한자는 별도의 키워드 없이 생략하면 적용 * * 1. private 접근제한자 * - 외부 클래스에서 접근하지 못하며, 자신의 클래스 내에서만 접근 가능 * - 주로 외부에서 접근하지 못하도록 멤버변수에 적용 * - 자신의 클래스 내에서 private 멤버변수 값에 접근하여 * 멤버변수의 값을 변경하거나 리턴하는 역할의 메서드를 정의하여 제공 * * 2. public 접근제한자 * - 누구나 접근 가능 * - 주로 외부에서 접근하는 메서드에 적용 * public class Ex3 { p..

JAVA 2021.10.28

[Java] Class 연습

public class Test { public static void main(String[] args) { // Person 클래스의 인스턴스(p) 생성 // 이름 : 홍길동, 나이 : 20, 배고픔 : false 값 저장 Person p = new Person(); // 외부의 다른 클래스에서 Person 클래스의 인스턴스에 접근하기 위해서는 // 참조변수 p를 통해 접근 필수! p.name = "홍길동"; p.age = 20; p.isHungry = false; //System.out.println("이름 : " + p.name); //System.out.println("나이 : " + p.age); //System.out.println("배고픔 : " + p.isHungry); // 참조변수 p를..

JAVA 2021.10.28

[Java] Class

/* * 동물(Animal)에 해당하는 Animal 클래스 정의 * 1. 분석 * - 속성 : 이름(name, 문자열), 나이(age, 정수) * - 기능 : 짖다(cry()) */ /* * 2. 설계 - 클래스 정의 * * [접근제한자] class 클래스명 { * // 멤버변수 * // 생성자 * // 메서드 * } */ //Animal클래스 정의 public class Animal { //멤버변수 선언 String name; int age; //메서드 정의 // 짖다(cry()) : 매개변수도 없고, 리턴값도 없는 메서드 // => "동물 울음 소리!" 문자열 출력 public void cry() { System.out.println("동물 울음소리!"); } } /* ..

JAVA 2021.10.28

[Java] 객체지향(Method)

/* * 메서드(Method) * - 동작(작업)의 최소 단위(= 작업을 수행하는 코드들의 모음) * ex) '밥먹다' 의 기능을 메서드로 표현(밥을 떠서 입에 넣고 씹기 등) * - 메서드는 반드시 호출되어야만 실행될 수 있음 * => 호출하는 메서드 : Caller, 호출 당하는 메서드 : Worker * - 메서드 호출 시 메서드에 전달하는 값을 전달인자(Argument)라고 하며, * 이 전달 인자를 전달받아 저장하는 변수를 매개변수(Parameter)라고 함 * => 파라미터는 있을 수도 있고, 없을 수도 있다. * - 메서드가 호출되면 작업을 수행한 후에 반드시 호출한 위치로 돌아감 * => 이 때, 호출한 곳으로 전달하는 값을 리턴값(Return value)이라고 함 * - 리턴타입을 명시한..

JAVA 2021.10.28

[Java] 배열 테스트 문제

package array; //내가 쓴 코드 public class Test5 { public static void main(String[] args) { /* * 학생 이름을 1차원 배열(names)에 저장하고, * 학생 점수를 2차원 배열(score)에 다음과 같이 저장 후 출력하시오. * * 국어 영어 수학 * 홍길동 80 70 80 * 이순신 90 90 90 * 강감찬 50 60 77 * 김태희 100 100 100 * 전지현 80 80 60 * ------------------------- * 학생별 총점을 계산하여 1차원 배열(studentTotal)에 * 다음과 같이 저장 후 출력하시오. * * 홍길동 : 230점 = studentTotal[0] * 이..

JAVA 2021.10.28
반응형