분류 전체보기 259

Java API

1. API(Application Programming Interface) : 응용 프로그램에서 사용할 수 있도록 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스 * Java 8 버전 API - API는 Oracle에서 제공하고 있다. 필요한 것들은 여기서 찾으면 된다. ☞ https://docs.oracle.com/javase/8/docs/api/ 2. Math 클래스 (1) 특징 ① 수학과 관련된 기능들이다. → 형식: Math.사용할기능 ② 모든 필드와 메소드가 전부 static으로 되어 있다. → static 생략이 가능하고 생성자는 private이며, 객체 생성이 필요 없다. ③ java.lang 패키지 안에 존재한다. (2) π(파이) : Math.PI System.out.p..

상속과 인터페이스를 통해 휴대폰에 필요한 기술들을 제원으로 출력하는 프로그램을 작성하기

// Phone 클래스(interface) public interface Phone { // public static final 생략 가능(어차피 상수 필드이므로) char[] NUMBERPAD = {'1', '2', '3', '4', '5', '6', '7', '8', '9', '*', '0', '#'}; // 추상 메소드 /*public abstract*/ String makeCall(); // 전화 걸기 String takeCall(); // 전화 받기 // public abstract 생략 가능(interface이므로) } // Camera 클래스(interface) public interface Camera { String picture(); // 촬영 방식 추상메소드 } // CellPhone..

상속을 이용하여 학생과 직원을 관리하는 프로그램을 구현하기

① 부모 클래스 Person 먼저 생성하기 - 부모 클래스 필드값 생성 - 부모 클래스 기본 생성자 생성 후 매개변수 생성자로 필드값 초기화 - 매개변수에 대해 getter/setter 메소드 생성 - 문자열로 필드값을 전부 모아 출력값 반환 public class Person { // 필드 protected String name; // 이름 private int age; // 나이 private double height; // 신장 private double weight; // 체중 // 생성자 public Person() {} // 기본 생성자 public Person(int age, double height, double weight) { // 매개변수 생성자 this.age = age; this...

상속을 이용하기 전후를 비교해보기

[상속 받기 전] // 클래스 Banana // 필드 public class Banana { private String nation; private int price; private String retailer; private boolean yellow; // 생성자 public Banana() { // 기본 생성자 } public Banana(String nation, int price, String retailer, boolean yellow) { this.nation = nation; this.price = price; this.retailer = retailer; // 자신의 클래스 내에 있으므로 참조변수 this. 를 사용 this.yellow = yellow; } // 메소드 // getter..

다형성(Polymorphism) - 다형성, 형변환, instanceof, 객체배열, 매개변수, 바인딩

1. 다형성(Polymorphism) : 상속을 이용한 기술로, 부모 클래스로부터 상속 받은 자식 클래스 타입의 객체를 부모 클래스 타입으로 형변환하여 한번에 다룰 수 있는 기술이다. (1) 예시 ① 부모 타입의 참조(레퍼런스)변수로 부모 객체를 다루는 경우 Parent p = new Parent(); p.printP(); p.printParent(); // 부모 객체(Parent())에만 접근 가능하다. ② 자식 타입의 참조(레퍼런스)변수로 자식 객체를 다루는 경우 Child1 c1 = new Child(); c1.printP(); c1.printParent(); c1.printChild1(); // 자식 객체(Child())와 부모 객체(Parent())에 접근 가능하다. ③ 부모 타입의 참조(레퍼런..

상속(Inherit) - 상속, 오버라이딩(Overriding), 예약어

1. 상속(Inherit) : 매 클래스마다 중복된 필드와 메소드를 하나의 클래스(부모 클래스)로 모아서 정의한 후 상속을 받아 자식 클래스가 자신의 필드와 메소드처럼 사용하는 개념 (1) 목적 : 클래스를 재사용하기 위해, 연관된 클래스들에 대해 공통적인 규약을 정의하기 위해 (2) 특징 ① 클래스 간에 다중 상속은 불가하고, 단일 상속만 가능하다. ⓐ 단일 상속: Java에서는 하나의 부모클래스에게만 상속받을 수 있다.(여러 부모클래스에게 상속받을 수 없다.) ② 모든 클래스는 Object 클래스의 후손이다. ⓐ 모든 클래스에는 이미 만들어진 클래스와 새로 만들 클래스들이 모두 포함되어 있다. ⓑ Object 클래스에 있는 메소드들을 사용할 수 있다. ⓒ Object 클래스에서 상속 받은 메소드를 오..

객체로 도서명과 출판사, 저자명, 가격, 할인율 출력하기

// 도서명과 출판사, 저자명, 가격, 할인율 출력하기 // this와 this(), setter/getter 메소드를 사용 // 도서명과 출판사, 저자명은 기본적으로 입력한다. public class Book { private String title; // 도서명 private String publisher; // 출판사 private String author; // 저자명 private int price; // 가격 private double discountRate; // 할인율 // 기본 생성자 public Book() {} // 매개변수 생성자 public Book(String title, String publisher, String author) { this(title, publisher, au..

객체(Object)(2) - 필드, 생성자, 메소드

1. 필드(Field) (1) 특징 ① 클래스를 구성하는 요소 중 하나 ② 클래스 내부에서 메소드 밖의 영역에 정의가 되는 지역변수의 개념 ③ 어떠한 데이터를 저장하기 위한 역할(= 변수) (2) 변수의 구분 ① 전역변수 : 클래스 영역에 바로 선언하는 변수(클래스 내부이면 어디서든 사용할 수 있다.) ⓐ 멤버변수(인스턴스변수, 필드) - 생성 시점: new 연산자를 통해 해당 객체를 생성하는 순간에 heap 메모리 영역에 할당된다. - 소멸 시점: 객체가 소멸될 때 같이 소멸된다.(Garbage Collector가 지워줄 때) ⓑ 클래스변수(static 변수 - static이라는 예약어가 붙은 변수) - 생성 시점: 프로그램이 실행과 동시에 static 영역에 할당된다. ∴ 해당 객체가 생성되지 않아도..

매개변수 생성자를 이용해 학생 성적 출력하기

단, 총점과 평균은 직접 설정하지 않는다. 그리고 점수를 한 개만 설정하면 국어점수로 간주하며, 점수를 두 개 설정하면 각각 국어 점수와 영어 점수로 간주한다. public class Grade { // 필드 private String name; // 학생 이름 private int kor; // 국어 점수 private int eng; // 영어 점수 private int math; // 수학 점수 private int total; // 총점 private double avg; // 평균 // 생성자 public Grade() {} // 기본 생성자 // 매개변수로 초기화 // 합계와 평균을 직접 설정하지 말라는 것은 매개변수에 넣지 말라는 뜻이다. public Grade(String name, int..

setter, getter 메소드로 여러 종목의 운동선수들의 메달 개수 출력하기

접근제한자 private을 사용할 때에는 해당 클래스엔 특정 값이 입력되면 안된다. 왜냐하면 private을 썼다는 것은 보안이 필요한 경우이기 때문이다. 그래서 진짜 값이 들어있는 클래스는 다른 곳에 두어야 한다.(아무도 모르고 나만 아는..) 그런데 그렇게 되면 직접 접근할 방법이 없으므로 간접 접근할 방법을 찾아야 한다. 이럴 때 쓰는 것이 setter 메소드와 getter 메소드이다. public class Athlete { // 접근제한자 private // public과 달리 볼 수 있는 사람의 제한 범위가 크다. // 보안이 필요한 경우에 private을 쓴다. private String name; private String event; private int gold; private int ..