본문 바로가기

develop/Java

(43)
코드의 재사용 코드의 재사용 메서드 오버로딩= 하나의 메서드로 서로 다른 파라미터를 전달 받아 비슷한 작업들을 수행하는 것. 앞서 우리가 아는 메서드 오버로딩 class WalkTest{ public void walk(){ //1번 메서드 System.out.println("100cm 이동"); } public void walk(int distance){ //2번 메서드 System.out.println(distance + "이동"); } public void walk(int distance, String unit){ //3번 메서드 switch(unit){ case "cm" : break; case "m" : distance *= 100; break; case "inch" : distance *= 2.5; break..
this 키워드 this 키워드 인스턴스가 생성될 때 자동으로 생성되는 변수의 일종이며 자신의 인스턴스 주소가 자동으로 저장된다. 메서드(또는 생성자) 내에서 선언된 변수(=로컬변수)와 클래스를 정의할 때 선언되는 변수(=멤버변수)의 이름이 동일할 경우 멤버변수를 가리키기 위해 사용되는 참조변수 역할을 함. this.멤버변수명 or this.메서드명() 형태로 사용 class Student{ String name;
생성자 오버로딩(Constructor Overloading) 생성자 오버로딩 생성자는!!! 멤버변수를 초기화하는 놈이였다.. 생성자 오버로딩은 메서드 오버로딩과 마찬가지로 생성자의 파라미터를 달리하여 동일한 이름으로 다른 기능을 수행하도록 하는 것. 생성자의 기본 목적이 멤버변수를 초기화하는 건데, 멤버변수의 초기화를 다양하게 수행하기 위해 생성자의 파라미터를 다양하게 정의하는 것이다. 생성자는 new 다음에 위치하면 호출됨 // 오버로딩 된 생성자를 호출하여 객체를 다양하게 초기화하기 // MyDate() 생성자 호출 MyDate d1 = new MyDate(); d1.print(); System.out.println("-----------"); // MyDate(int) 생성자 호출 MyDate d2 = new MyDate(2021); d2.print(); S..
가변인자 Variable Arguments 가변인자 = 비정형 인자 😖 가변인자를 사용하는 이유?.. 일반적으로 메서드 오버로딩시 전달인자의 갯수와 메서드가 가진 파라미터 갯수가 일치해야 오류가 발생하지 않는다. 하지만 사용자가 넣을 파라미터가 몇개인지를 항상 예측하고 메서드 파라미터를 열어둘 수 없기 때문에 가변인자를 통해서 파라미터 갯수에 대한 제한을 없애도록 함. -메서드 파라미터의 인자가 변하는 형태(갯수의 제한이 없는 전달인자) -메서드 정의시 선언부 파라미터 부분에 변수를 선언할 때, 변수의 데이터타입과 변수명 사이에 가변인자 기호(...)를 사용 -가변인자를 사용하여 메서드를 정의하면 메서도 호출 시점에서 파라미터 갯수에 대한 제한이 없어짐 => 같은 타입의 인자, 배열만 전달 가능 -전달받은 데이터는 변수명에 해당하는 1차원 배열로..
출력 메서드(System.out.p---) 분류(?) 우리는 자바에서 출력을 위한 메서드로 System.out.println() 메서드를 사용한다. 이 출력 메서드에는 종류가 있는데 println, print, printf 3가지로 구분이 된다. 1. println 메서드. 우리가 잘 알고 있는 System.out.println() 메서드. 파라미터로 전달되는 데이터를 출력하고 파라미터가 없을 경우에는 줄바꿈 기능을 수행하기도 한다. 2. print 메서드 마찬가지로 파라미터로 전달되는 데이터를 출력한다. 하지만 줄바꿈은 수행하지 않음. 1번과 다르게 파라미터가 없는 경우에는 오류가 발생한다. 3.printf 메서드 출력형식을 지정하여 사용자가 원하는 형태로 데이터를 출력 가능하다! 파라미터에 출력형식 문자열과 출력할 데이터를 전달함. print 메서드와 ..
접근제한자, 메서드 오버로딩 접근제한자 (Access Modifier) -대상에 대한 접근 범위를 제어하는 키워드이자 클래스, 메서드(생성자 포함),변수에 사용 가능함. 1.public - 어디서든(누구나) 접근 가능 2.private - 자신의 클래스 내에서만 접근 가능 private 접근 제한자로 멤버변수에 접근범위를 제한해버리면 데이터를 주고 받아야할 경우에 접근할 수 없다. 그럴 경우 Getter와 Setter 메서드를 사용하면 대신 데이터를 주고 받는 것이 가능하다! -Getter 메서드 : 내부 멤버 변수의 값을 외부로 리턴한다. get.멤버변수이름()의 형태로 사용됨. 매개변수는 없고 리턴값만 존재함. -Setter 메서드 : 외부로부터 값을 전달받아 내부 멤버변수에 저장. set.멤버변수이름()의 형태로 사용됨. 매개..
객체 지향 -(2) 생성자 생성자 클래스를 사용하여 인스턴스(객체) 생성 시 new 연산자로 자동으로 호출되어 필드(변수)를 초기화하는 역할을 함. == 인스턴스를 초기화 할 때나 인스턴스를 만들 때 작업을 시작한다. 매서드와 유사하게 생겼지만, 리턴타입을 기술하지 않고 생성자 이름이 클래스와 동일하다는 차이점이 있다. 공통점은 메서드처럼 호출되어야만 실행 가능하다. 객체 생성 시 호출함. 그리고 혹여 개발자가 생성자를 하나도 생성하지 않은 경우, 자바 컴파일러에 의해 기본 생성자가 자동으로 형성. 반대로 말하면 하나라도 생성될 경우에는 기본 생성자는 자동으로 생성되지 않는다 생성자의 목적. -필드를 선언할 때 초기값을 주게 되면 동일한 클래스로부터 생성되는 객체는 모두 같은 데이터를 가진다 => 객체 생성 시점부터 원하는 초기값..
객체지향 - (1) 개발자 과정을 배우면서 주변에서 하도 객체지향 어쩌고 말을 들어서 뭐가 됐든 간에 이 녀석이 아주 중요한 놈이라는 거는 알고 있었다. 객체(object-oriented) 란 쉽게 말해서 '나'(주체)가 파악하는 모든 것이라고 할 수 있다. 모든 것에는 객체의 물리적, 개념적 대상을 모두 포함한다. 물리적인 사람, 자동차, 동물 추상적인 학과, 시험, 강의 등이 모두 객체가 될 수 있다! 객체는 속성(구성요소)과 동작(기능)로 구성되어 있는데 자바에서는 이 속성과 동작을 필드와 메소드라고 부른다! ex. 객체 - 사람 속성 : 나이, 성별, 이름, 거주지 동작 : 걷다, 말하다, 춤추다 객체 - 자동차 속성 : 색깔, 브랜드명, 배기량, 속도, 바퀴, 엔진 동작 : 전진, 후진, 멈춤 이렇게 객체를 소프트..