전체 글(58)
-
이클립스 설치 및 개발환경 구축
OpenJDK 8 설치 https://docs.aws.amazon.com/corretto/latest/corretto-8-ug/downloads-list.html Downloads for Amazon Corretto 8 - Amazon Corretto Thanks for letting us know this page needs work. We're sorry we let you down. If you've got a moment, please tell us how we can make the documentation better. docs.aws.amazon.com 운영체제에 맞게 jdk 설치 cmd에 java-version, javac-version 입력 후 설치된 버전 정보 나오는지 확인 IDE세팅 ..
2021.10.15 -
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 -
public static void main (String[] args)
자바의 main 메소드 기본은 public static void main(String[] args) public public은 제한자를 의미 제한자는 모든 함수의 앞에 기술되며, 이 함수의 접근 범위를 지정. 구분 같은 클래스의 멤버 같은 패키지의 멤버 자손 클래스의 멤버 그 외의 영역 + public O O O O # protected O O O ~ default O O - private O main함수는 기본이 되는 함수이므로 모든 곳에서 접근 가능한 public 사용. static 클래스를 메모리에 올리는 방법 2가지 static(정적 할당) heap(동적 할당) 메모리 할당 기준 프로그램 실행되는 순간 new 연산자를 이용해 실행되는 순간 메모리 정리 기준 정리 대상 X Garbage Collec..
2021.09.14 -
배열, 메소드
배열 연관된 정보를 그룹핑. 배열에 담긴 각각의 데이터를 원소(element), 식별자를 index. 0부터 시작. 배열이 담을 수 있는 원소의 개수 길이를 length 변수는 Stack에 할당, 배열은 String처럼 참조 변수로 메모리의 Heap이라는 영역에 할당. Heap이라는 영역에는 절대 빈 공간으로 존재 불가 └ 공간이 만들어지는 순간 JVM이 기본값(0)으로 초기화, String은 null로 초기화 Stack영역에는 하나의 값이나 하나의 주소만 담을 수 있기 때문에 실제 배열 데이터는 new라는 연산자를 통해 Heap영역에, 배열의 주소값은 Stack에. ※ 자바에서 자주 발생하는 배열 관련 예외 java.lang.ArrayIndexOutOfBoundsException 존재하지 않는 인덱스를..
2021.09.13