Java(39)
-
[Java] 생성자(Constructor)
생성자 메서드 라고도 함 객체가 생성될 때 호출되어 멤버변수 초기화나 객체 생성 시 특정 작업을 수행 메서드 구조와 유사하나, 리턴타입이 없고, 이름을 클래스명과 동일하게 정의 메서드와 마찬가지로 파라미터가 없을 수도 있고, 파라미터가 있을 수도 있다. 생성자를 정의하지 않으면, 컴파일러에 의해 기본 생성자가 자동으로 생성됨 ⇒ 하나라도 정의할 경우, 기본 생성자가 자동으로 생성되지 않는다! (기본 생성자 : 파라미터가 없고, 구현부의 코드가 아무것도 없음) ⇒ 생성자는 반드시 최소한 한 개 이상이 존재해야함(자동 생성 기본 생성자 포함) [제한자] 클래스명([파라미터...]) { // 객체 생성 시 수행할 작업들... } 생성자 만들 ..
2021.01.23 -
[Java] 오버로딩 / 가변인자
p.197 동일한 이름의 메서드를 여러개 정의하는 것 이름은 동일하고 파라미터가 서로 달라야 함 ⇒ 파라미터의 타입 또는 개수가 달라야 함 리턴타입은 오버로딩과 무관함(달라도 상관없음) 반드시 메서드를 호출하는 시점에서 오버로딩 된 메서드를 구분할 수 있어야함 ======== Ex.java 만들기. 문제 ) 정수 num 을 전달받아 절대값을 리턴하는 abs() 메서드 호출 정수 num 을 전달받아 절대값을 리턴하는 abs() 메서드 정의 더블 타입을 넣으면 오류남! public int abs(int num) {} ⇒ int 타입을 받기 때문에! 그래서 double 타입을 받아서 리턴하는 메소드를 따로 정의해줘야함. 오류가 사라짐 <..
2021.01.23 -
[Java] 변수 선언 위치에 따른 분류 / 접근제한자
지난번 복습 ========Ex.java 파일 만들기 (main 체크) 문제 ) 자동차(Car) 클래스 정의 - 멤버변수 1) 현재속력(speed, 정수형) 2) 최대속력(maxSpeed, 정수형) - 메서드 1) 속력 증가 : speedUp() -파라미터로 증가할 속력(s) 전달, 리턴값 없음 -증가할 속력(s)을 전달받아 현재속력(speed)에 누적 및 현재속력을 출력 단, 누적된 속력이 최대 속력(maxSpeed) 보다 클 경우 현재 속력(speed)을 최대 속력(maxSpeed)으로 고정 후 "최대 속력 도달!" 출력 2) 속력 감소 : speedDown() -파라미터로 감소할 속력(s) 전달, 리턴값 없음 -증가할 속력(s)을 전달받아 현재속력(speed)에서 차감 및 현재속력을 출력 단, 차감..
2021.01.23 -
[Java] 클래스의 객체 / 인스턴스화
p. 176 new 키워드를 사용하여 생성할 인스턴스의 클래스명을 명시 Heap 공간에 생성된 인스턴스 주소를 저장할 참조변수를 선언하고 해당 인스턴스 생성 후의 주소값을 저장 인스턴스 생성 후에는 참조변수를 통해 인스턴스 접근 가능 ⇒ 변수명.멤버변수명 또는 변수명.메서드명() 의 형태로 접근 ⇒ 단, 자신의 클래스 내의 변수 또는 메서드는 참조변수 없이 바로 접근 [제한자] class 클래스명 { // 멤버변수(인스턴스 변수) 선언 // 멤버메서드 정의 } 클래스명 변수명(참조형변수) = new 클래스명(); 교재 p175 (클래스 생성) ======== Person.java 파일 만들기..
2021.01.19 -
[Java] 메서드(Method)
교재 이론 167p~, 184p(메서드)~ ======== Ex.java 파일 새로 만들기. p.184 어떤 작업을 수행하는 코드들의 집합(= 작업의 최소 단위) 선언부(Header)와 구현부(Body) 로 구분하여 정의 메서드는 반드시 호출되어야만 실행될 수 있다. ⇒ 이 때, 호출하는 메서드를 Caller 메서드라고 하며 호출 당해서 작업을 수행하는 메서드를 Worker 메서드라고 한다. 메서드 정의 시 리턴값이 없을 경우, 리턴타입을 생략할 수 없으며 반드시 void 라는 특수한 타입을 명시해야한다! (리턴값이 없다는 의미) 리턴타입은 한 가지만 명시할 수 있으며, 동시에 리턴할 수 있는 값도 한 가지 뿐이다! main() 도 메서드의 일종이며, 자바 프로그램에서 시작점..
2021.01.19 -
[Java] 2차원배열
======== Test.java 만들기 문제 ) 학생 이름과 점수를 출력 - 이름을 저장할 배열(names) ⇒ "홍길동", "이순신", "강감찬", "김태희", "정우성" - 점수를 저장할 배열(score) ⇒ 80, 60, 70, 100, 90 String[] names = {"홍길동", "이순신", "강감찬", "김태희", "정우성"}; int[] score = {80, 60, 70, 100, 90}; for(int i = 0; i 푼 답 ======== Ex2.java 만들기 p.151 1차원 배열들의 집합 ⇒ 행렬의 형태와 비슷한..
2021.01.19