Java 67

Java 문법) Object클래스 - toString

Object 클래스 메서드 중 public String toString ( ) 메서드는 객체 자신의 정보를 문자열로 반환한다. 예제 ) class Card { String kind; int number; Card() { this("SPADE", 1); } Card (String kind, int number) { this.kind = kind; this.number = number; } @Override public String toString() { return "kind : " + kind + ", number : " + number; } } public class ToString03 { public static void main(String[] args) { Card c1 = new Card(); ..

Java 2023.11.02

Java문법) Object클래스 - hashCode

Object 클래스 메서드 중 public int hashCode ( ) 메서드는 객체 자신의 해시코드를 반환한다. 예제 ) public static void main(String[] args) { String str1 = new String("abc"); String str2 = new String("abc"); String str3 = "def"; String str4 = "def"; System.out.println(str1.equals(str2)); // true 출력 System.out.println(str1.hashCode());// 96354 출력 System.out.println(str2.hashCode());// 96354 출력 System.out.println(System.identit..

Java 2023.11.02

Java문법) 예외처리 -4 (throw와 throws)

1. throw 예외가 발생하지 않았음에도 예외를 명시적으로 발생 시킴 ( 강제로 예외 발생시킴 ) 예외가 발생되었을 때 제대로 처리되는지 확인하기 위해 사용 public static void main(String[] args) throws Exception { try { Exception e = new Exception("고의로 발생시킴"); throw e; }catch ( Exception e ) { System.out.println(e); } } 출력결과 ) [출력방법] (1) printStackTrace ( ) : 예외 발생 시 호출 스택 ( call stack ) 에 있었던 메서드의 정보와 예외 메세지를 화면에 출력 (2) getMessage ( ) : 발생한 예외클래스의 인스턴스에 저장된 메시..

Java 2023.11.01

Java문법) 예외처리 -3 (ClassCastException, InputMismatchException)

4. ClassCastException : 변환할 수 없는 타입으로 객체를 변환할 때 발생 출력결과 ) 예외처리 후 class Animal { } class Dog extends Animal { } class Cat extends Animal { } public class ClassCast05 { public static void main(String[] args) { try { Dog dog1 = new Dog(); Animal an = dog1; Dog dog2 = (Dog)an; System.out.println("Dog 형변환"); Animal an2 = new Animal(); Cat cat = (Cat)an2; System.out.println("Cat 형변환"); } catch(ClassCa..

Java 2023.11.01

Java문법) 예외처리 -2 (NullPointerException, ArrayIndexOutOfBoundsException, NumberFormatException)

1. NullPointerException : 객체 참조가 없는 상태 ( 객체가 없는 상태에서 객체를 사용하려 할 때 발생 ) public class NullPointerException02 { public static void main(String[] args) { try { String str = null;// 객체가 아직 생성되지 않은 상태에서 System.out.println(str.toString());// 주소값이 없는데 toStirng 호출하므로 오류 ! } catch(NullPointerException e) { System.out.println("데이터가 들어 있지 않습니다"); System.out.println("예외메시지 : " + e); } System.out.println("끝까지..

Java 2023.11.01

Java문법) 예외처리 -1

에러 : 자바에서 컴퓨터 하드웨어 관련 고장으로 인해 응용프로그램 실행 오류가 발생하는 것 예외 : 그 외 프로그램 자체에서 발생하는 오류 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인해 발생하는 프로그램 오류 예외 처리 프로그램을 통해 정상 실행 상태 유지 가능 예외 발생 가능성이 높은 코드를 컴파일할 때 예외 처리 유무 확인 (1) 일반 예외 : 컴파일러 체크 예외로 자바 소스 컴파일 과정에서 해당 예외 처리 코드 있는지 검사하게 됨 (2) 실행 예외 : 컴파일러 넌 체크 예외로 실행 시 예측할 수 없이 갑자기 발생하기에 컴파일 과정에서 예외 처리 코드 검사하지 않음 종류 설명 ArithmeticExcept..

Java 2023.10.31

Java문법) final 키워드

final 키워드 : 해당 선언이 최종 상태이며 수정될 수 없음을 의미 클래스 및 메서드 선언 시 final 키워드를 사용하면 상속과 관련됨 상속할 수 없는 final 클래스 → 부모 클래스가 될 수 없어 자식 클래스를 만들 수 없음을 의미 final class Final01 { } class FinalInher extends Final01 { // 오류 : class 앞에 final을 붙이면 상속 불가 } 재정의 할 수 없는 final 메서드 → 부모 클래스에 선언된 final 메서드는 자식 클래스에서 재정의 할 수 없음 class Final02 { int num = 10; final int NUM2 = 34; // 상수 ( 변수 앞에 final 붙임, 값이 한 번 저장되면 변경이 불가) //( 변수로..

Java 2023.10.30

Java 문법) 가변인자

MultiArgs 가변인자 Java에서 메서드에 다양한 개수의 인수를 전달 가능 메서드 정의에서 타입... 변수명 형식으로 가변인자 선언 가변인자를 사용하면 메서드 호출 시 다양한 개수의 인수 전달이 가능 메서드 내부에서 이러한 인수를 배열로 처리가 가능 ! public class MultiArgsTest { public static void main(String[] args) { /*MultiArgsTest mt = new MultiArgsTest(); String str = mt.concatenate("", "", "", "");*/ String str = concatenate("a", "b", "c"); System.out.println(str); String strArr[] = {"마리오", "루..

Java 2023.10.27

Java문법) 메서드 오버로딩

메서드 오버로딩 ( overloading ) 같은 이름의 메서드를 여러 개 선언 매개 값을 다양하게 받아 처리할 수 있도록 하기 위함 매개 변수의 타입, 개수, 순서 중 하나가 달라야 함 ( 리턴 타입은 동일해도 되고 아니어도 됨, 메서드 이름은 동일해야 함 ) package overloading08; public class Arithmetic { int j = 10; // 메서드 오버로딩 int plus(int x, int y) { int re = x+y; return re; } void plus(int x) { System.out.println(x + "+10=" + ( x + 10 )); System.out.println(x + "+" + j + "=" + ( x + j )); } void plus..

Java 2023.10.26

Java문법) for문 - 기타 사용

1. for문 여러 변수 사용 public class for문_여러변수사용 { public static void main(String[] args) { int num1, num2, num3; num1 = num2 = num3 = 10; int num4 = 8, num5 = 9, num6 = 21; // 같은 자료형 일때만 가능 // for문에 여러개의 변수 사용 가능 // 조건식에는 변수가 하나만 들어가야한다 for(int i=1, j=20; i=10; i++, j--, z+=2) { System.out.println("i=" + i + ", j=" + j + ", z=" + z); } } } 2. for문을 while(true) 한 것과 동일하게 사용 for(;;) { System.out.println..

Java 2023.10.25

2일차 - 문제풀이

내가 작성한 코드 package ex02; import java.util.Arrays; import java.util.Scanner; public class Ex06 { public static void main(String[] args) { Scanner scan = new Scanner(System.in); // 사용자가 배열의 길이를 직접 입력하여 그 값만큼 정수형 배열을 선언 및 할당하고 배열의 크기 만큼 사용자가 직접 값을 입력하여 각각의 인덱스에 값을 초기화 // 그리고 배열 전체 값을 나열하고 각 인덱스에 저장된 값들의 합을 출력 System.out.print("배열의 길이를 입력하세요. : "); int i = scan.nextInt(); int []array = new int[i]; fo..

Java 2023.10.24

Java문법) ArrayCopy

package array01; import java.util.Arrays; public class Array_copy08 { public static void main(String[] args) { int[] oldScore = {90, 87, 69, 97, 85}; // 한번 설정한 배열의 크기는 변경할 수 없다. ( 배열의 단점 ) //oldScore[5] = 66; //System.out.println(oldScore[5]); -> 배열보다 더 큰 공간에 값을 넣으려고 하면 오류 int[] newScore = new int [10]; //for(int i=0; i 값을 넣지 않은 부분에는 초기값 0이 삽입 됨 //System.arraycopy(oldScore, 0, newScore, 0, oldSc..

Java 2023.10.24