JAVA
-
OptionalJAVA/Optional 2023. 6. 22. 14:01
개요 자바를 하면서 우리는 수없이 많은 if문을 사용한다. 그중 일부는 들어온 변수가 null인지 아닌지를 확인하여 프로그램의 흐름에 영향을 주기 위해서나, 프로그램의 비정상적인 작동을 막기 위해서 사용한다. 간단하게 코드로 확인해보자 // User 클래스 파일 public class User { private Address address; public Address getAddress() { return address; } public void setAddress(Address address) { this.address = address; } } //... // Address 클래스 파일 public class Address { private String street; public Address(){}..
-
나만의 예외만들기JAVA/예외( exception ) 2023. 6. 15. 18:19
개념 예외를 처리하기 위한 방법으로 2개의 키워드를 알아야 한다. throws : 발생할 수 있는 예외를 등록하는 키워드. throw : 예외가 발생했을 때 예외를 핸들링하지 않으면 해당 메소드를 호출한 곳으로 예외를 보내는 키워드 또한 나만의 예외를 만들기 위해선 새로만든 예외클래스는 Exception을 상속 받아야한다. 점수입력하는 프로그램의 예외처리 클래스 만들어 활용하기 1. 예외처리 클래스 만들기 // 우리가 만드는 예외 클래스 // Exception 또는 RuntimeException 클래스를 상속 받아서 만듬 public class ScoreException extends Exception { // 생성자 public ScoreException(){ super("점수 입력 오류"); // 부..
-
다형성 - polymorphismJAVA/OOP개념( 다형성 ) 2023. 6. 15. 10:01
개념 다형성의 개념은 크게 2가지로 나누어 설명할 수 있다. 클래스의 다형성 메소드의 다형성 클래스의 다형성 하나의 타입의 참조변수로 여러타입의 객체를 참조 가능 조상클래스 타입의 참조변수로 자손클래스의 인스턴스를 참조 가능하다는 것 메소드의 다형성 메소드의 다형성은 오버로딩과 오버라이딩 크게 2가지가 있다. 오버로딩은 메소드의 메소드의 이름은 같지만, 메소드의 매개변수리스트가 다른 경우 중복정의가 가능한 것을 말한다. 매개변수 리스트라는 것은, 1. 매개변수의 갯수가 다르거나, 2. 매개변수의 자료형이 다르거나, 3. 매개변수의 순서가 다를 때 를 말한다. 위의 경우, 메소드의 오버로딩이 가능하다. 오버라이딩은 메소드의 재정의를 의미하는데, 이는 상속의 개념과 함께 언급되는 내용이다. 오버라이딩은 자세..
-
생성자 + 캡슐화의 개념JAVA/클래스 ( 기본 ) 2023. 5. 3. 12:32
생성자란 생성자란 클래스를 통해 인스턴스가 생성될 때, 실행되는 것 목적 인스턴스 생성시 멤버변수 초기화의 용도로 쓰임 생성자도 일종의 메소드와 비슷한데, 따로 호출해주는 것이 아니라 인스턴스가 생성될 때 실행된다. 생성자는 기존의 메소드와는 특이하게 클래스의 이름을 그대로 따라간다. public class Circle { // 속성 -> 변수(필드, 멤버변수) public double radius; // 생성자 public Circle(){ System.out.println("Circle() 생성자 호출"); System.out.println("반지름 값: " + radius); } // 생성자 오버로딩 가능 public Circle(double radius){ System.out.println("Ci..
-
클래스란?JAVA/클래스 ( 기본 ) 2023. 5. 3. 12:12
클래스 vs 인스턴스 우리가 만들고자 하는 대상의 '상태' 와 '기능' 을 함께 가지고 있는 '데이터 타입' 클래스의 사용 클래스를 사용하기 위해서는, 해당 클래스의 인스턴스를 생성해야 한다. 구문 클래스이름 변수이름 = new 생성자(); 생성자(): 클래스의 이름과 동일, 클래스의 멤버변수들을 초기화 클래스 생성 구성요소 상태(속성, 필드) 기능(동작) 클래스는 내가 구현하고자 하는 것이 가지고 있는 상태와 속성을 정의해주고, 이에 따른 기능을 구현하는 방식으로 진행 TV 클래스를 만들어보자 public class MyTV { //상태 private boolean isPowerOn; // 전원 on/off private int channel; // 현재 채널 private int volume; // ..
-
배열 - 2JAVA/배열( array ) 2023. 5. 3. 10:56
구분 내용 생성 시기 / 소멸 시기 Method Area byte code literal final static 생성 : 프로그램 시작 소멸 : 프로그램 종료 Heap 객체(object) 배열... > new로 생성되는 것들 생성 : new 생성시 소멸 : reference가 끊길 때 (Garbage Collection에 의해 자동 소멸) Stack 지역변수 매개변수 생성 : 블럭 안에서 선언될 때 소멸 : 블럭이 끝날 때 배열에 for문 사용과 enhanced for문 사용시의 차이점 기본적으로 두 개의 구문 모두 배열을 순회할 수 있지만, 결정적인 차이가 존재한다 enhanced for문은 기본적으로 배열의 소요를 꺼내어 변수에 담아서 사용하기 때문에 배열의 원소를 직접 변경하는 것이 불가능하다~! ..
-
배열이란?JAVA/배열( array ) 2023. 5. 3. 09:54
동일한 타입의 여러개의 데이터를 담는 집합 자료형 키워드 정리 : 동일 타입, 여러개의 데이터 배열의 선언 배열을 new로 생성한뒤에는 자동초기화 가 됨. 숫자타입들은 --> 0으로 boolean타입은 --> false 로 객체타입(Object) 타입은 --> null 로. // 선언 // 자료타입[] 변수이름; int[] arr; // 선언 + 초기화 int[] korea = new int[3]; // 배열의 크기 3 korea[0] = 100; korea[1] = 90; korea[2] = 80; // 선언 + 초기화 int[] korea = new int[]{100, 90, 80}; // 선언 + 초기화 int[] korea = {100, 90, 80};// new 는 알아서 해줌 배열의 길이 배열..
-
변수JAVA/변수( variable ) 2023. 5. 2. 09:29
1. 변수란? 값을 담는 공간. 변수 이름을 부여하여 관리한다. 2. 변수의 선언 // 변수의 선언 // 변수 타입 변수이름; int num1; 동일한 타입의 변수들은 한번에 선언이 가능하다. // 정수를 나타내는 int type의 변수 선언 int num2, num3, num4; 3. 변수의 초기화 선언한 변수는 해당 타입에 맞는 값을 부여해주면 된다. // 변수 선언 int a; // 변수 초기화 a = 100; 4. 변수 생성의 규칙 변수명으로 사용가능한 것은 알파벳, 숫자, _, $ 숫자로 시작 할 수 없다 띄어쓰기 안된다 대소문자 구분해야 한다 중복 안된다 자바 기준, 일반적으로 commel notation(myHome)을 사용한다 ※ 변수명은 기본적으로 그 의미를 생각하여 부여하는 것이 좋다 ..