Java(10)
-
API, Wrapper Class
Math 모든 필드 상수필드, 모두 static 메소드, 생성자는 private 프로그램이 시작될 때 메모리 영역에 재사용하는 싱글패턴 적용 StringTokenizer 생성 시 전달받은 문자열을 구분자로 나눠 각 토큰에 저장 String클래스에서 제공하는 split()메소드와 같은 기능 import java.util.*; public class StringTokenizerDonut{ public static void main(String[] args) { String donut = "boston cream, croissant, apple fritter, glazed, buttermilk"; StringTokenizer st = new StringTokenizer(str, ","); while(st.ha..
2021.10.13 -
abstract / final / interface
추상 클래스 추상 메소드 하나라도 가진 미완성 클래스 클래스 이름 앞에 abstract가 붙는다 추상 메소드가 아닌 메소드가 존재할 수도 있다 추상을 강제하기 위한 것 부모 클래스에는 메소드의 시그니처만 정의해놓고 그 메소드의 실제 동작 방법은 자식 클래스에게 위임 인스턴스(객체) 생성 불가 == 구체적인 메소드 내용이 없기 때문 상속을 통해 추상 메소드를 구현 후 해당 자손 객체 생성은 가능 추상 메소드 선언부만 존재하고 구현부{}가 없는 메소드 자손마다 구현부를 다르게 구현할 때 정의 완성해도 되고 abstract를 유지해서 추상 메소드의 완성을 미룰 수 있다 final 추상은 상속을 강제 final은 상속/변경을 금지하는 규제 final로 지정된 변수는 한번 값이 할당되면 변경 불가 상속도 당연히 ..
2021.10.12 -
캡슐화, setter과 getter메소드
접근제어자를 사용하는 이유 외부로부터 데이터 보호 내부에서만 사용되며 외부에서 불필요한 부분을 감추기 위해 외부로부터 데이터를 보호하기 위해 사용된 private 직접 접근은 불가하지만 getter/setter메소드를 통한 간접 접근 가능 setter메소드는 값이 할당되기 전 파라미터의 유효성 검사 가능 setter/getter 이클립스 단축키 alr+shift+s → r 변수의 유효값을 체크하는 메소드 alt+shift+m
2021.09.28 -
오버라이딩, 오버로딩
Overriding 자식 클래스가 상속 받은 부모 메소드를 재정의 메소드 헤드라인 위에 반드시 Annotation, @Override 표시 접근 제어자는 부모보다 더 좁은 범위 변경 불가 부모 메소드의 예외처리 클래스 처리범위보다 더 큰 범위의 예외 선언 불가 오버라이딩 조건 부모와 자식의 메소드 이름 동일 메소드 매개변수의 갯수와 데이터 타입 그리고 순서 동일 메소드의 리턴 타입 동일 부모와 자식의 코드가 중복(같은 로직)될 경우 중복은 제거되어야만 함 이럴 경우 자식이 부모의 메소드를 호출하기 위해 super 사용하여 중복 제거 Overloading 같은 클래스 내에서 같은 이름의 메소드를 여러 개 정의 오버로딩 조건 같은 메소드 이름 다른 매개변수(타입, 개수, 순서) 리턴타입이 달라도 오버로딩 불..
2021.09.23 -
상속, super과 super()
클래스의 재사용 기존에 있는 클래스를 상속받음으로 상속 받은 클래스의 멤버(필드, 메소드)를 자신의 멤버처럼 사용 가능 표현식 [접근제한자] class 자식클래스명 extends 부모클래스명 {} public class baguette extends bread {} super 부모 클래스를 의미 └ 자식 클래스에서 부모 클래스 객체에 접근하여 필드나 메소드 호출 시 사용 super() 부모 클래스의 생성자를 의미 └ 자식 클래스의 생성자에서 super를 사용할 때 super를 자식 생성자보다 제일 먼저 기술해야 함 └ 매개 변수 있는 부모 생성자 호출은 super(매개변수, 매개변수, ..)로 기술
2021.09.17 -
클래스, 인스턴스와 객체
클래스 클래스는 연관되어 있는 변수와 메소드의 집합 Class 키워드 뒤에는 클래스 이름과 그 뒤의 중괄호는 클래스의 시작과 끝의 경계를 의미. 객체 프로그램의 작은 프로그램 package org.opentutorials.javatutorials.object; class Calculator{ int left, right; public void setOprands(int left, int right){ this.left = left; this.right = right; } public void sum(){ System.out.println(this.left+this.right); } public void avg(){ System.out.println((this.left+this.right)/2); } } ..
2021.09.15