전체 글 139

Java , 예외 처리 Exception , try-catch

자바의 예외처리 방식자바에서 발생 가능한 오류 상황을 예외 처리의 객체로 만들어 현재 관리되고 있는 것이다.필요하다면 , 그 오류에 대해서 대응하고 진행하는 방법에 대해 정의해 놓았다.그에 대한 구문이 try - catch - finallytry { // 예외가 발생할 수 있는 코드} catch (ExceptionType1 e1) { // ExceptionType1 예외를 처리하는 코드} catch (ExceptionType2 e2) { // ExceptionType2 예외를 처리하는 코드} finally { // 예외 발생 여부와 상관없이 항상 실행되는 코드}  예외 처리에 대한 중요성예외 처리는 프로그램의 안정성과 신뢰를 높이는데 중요하다.적절한 예외 처리는 예기치 않은 상황에서..

Developer/JAVA 2024.09.22

JAVA , 열거형 클래스 enum !

enum 의 개념열거형(enum) 타입을 정의하는 데 사용되는 특별한 클래스.여러 상수들을 하나의 타입으로 정의할 수 있도록 해준다.단순히 상수 집합을 표현하는 것이 아닌 클래스 처럼 동작하여 메서드 또는 필드를 가질 수 있어 더 강력한 기능을 제공한다. [✔️예시01_기본동작]public enum Day { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY} Day today = Day.MONDAY;if (today == Day.MONDAY) { System.out.println("오늘은 월요일입니다.");}➡️의미를 가진 단어들을 상수로 사용하기 때문에 가독성은 물론 안정적으로 사용할 수 있다. enum 의 특징타입의 안전성 잘..

Developer/JAVA 2024.09.21

JAVA , 추상 클래스의 다형성 보기

매개변수를 활용하여 다형성을 보기 메인에서 사용할 메서드정의public static void animalUse(Animal animal) { animal.breath(); animal.sound();}인자로 animal 타입을 받게 된다면 사용할 수 있는 메서드이다. 메인에서의 위 메서드를 사용해보자.Animal cat1 = new Cat();Animal dog1 = new Dog();Cat cat2 = new Cat();animalUse(cat1);animalUse(cat2); //후손도 인자의 animal 타입에 적용 가능. // Animal animal = new Cat();animalUse(dog1);animalUse(new Dog()); 추상클래스의 타입의 배열로 인자 받기public stati..

Developer/JAVA 2024.08.08

JAVA , 추상 클래스

자바의 다형성을 이용한 클래스 다형성을 보다 체계적으로 더 잘 운영하기 위하여 추상이라는 개념이 나왔다.추상이란 규칙만 명시해놓은 것을 말한다.추상이 가능하냐 ? 라고 물어본다면 , 상속과 다형성이 가능하냐 ? 라는 뜻으로 보기도 한다.추상클래스는 타입으로 사용하는 조상의 개념이고 , 직접 생성할 수는 없고 자손을 통한 생성을 하게된다.다형성의 장점1 . 유연성 : 코드가 더 유연해지고 유지보수가 용이하다. 새로운 클래스나 메서드를 추가할 때 기존 코드를 거의 수정하지 않아도 된다.2. 재사용성 : 동일한 인터페이스를 사용하여 다양한 객체를 처리할 수 있어 코드의 재사용성이 높아진다.3. 가독성 : 코드를 읽고 이해하기 쉽게 만들어준다. 같은 메서드 이름을 사용하여 의미를 전달 할 수 있다. 추상 클래스..

Developer/JAVA 2024.08.08

JAVA , 클래스의 다형성, 타입 캐스팅(형변환) , 종단 클래스

상속 클래스의 구성할아버지 : Animal아버지 : Mammal나 : Pet우리가 일반적으로 사용할때 타입과 생성을 동일하게 사용했었다.Mammal ma1 = new Mammal(); //순수 Mammal 타입Pet pe1 = new Pet(); //순수 pet 타입  다형성 법칙1. 후손은 조상의 타입이 될 수 있다 = 상속관계는 같은 타입이 될 수 있다.2. 조상은 후손의 타입이 될 수 없다.타입 변수 = 생성 기본생성자 ;Animal a0 = new Animal(); → Animal 에 정의된것 만큼 접근 가능Animal a1 = new Pet(); → Animal 에 정의된것 만큼 접근 가능 타입으로 정의된 만큼 멤버들에게 접근이 가능함을 알 수 있다.정의된 멤버는 코드의 우측 만큼 접근이 된다...

Developer/JAVA 2024.08.07

JAVA , 상속관계 is-a

클래스를 상속하여 정의해보자  사용할 수 있는 멤버들 확인 가능하다. 추가로 멤버들과 , 생성자를 추가해보자.int turbo ;String option ; SportCar(){ System.out.println("====SportCar 기본 생성자");} SportCar(int turbo , String option){ this.turbo = turbo; this.option = option; System.out.println("====SportCar 현재 값 초기화 생성자");} tostring 도 함께 추가해 보자.@Overridepublic String toString() { // TODO Auto-generated method stub return super.toString() //super..

Developer/JAVA 2024.08.06

JAVA , 클래스간의 관계 : use , has, is

클래스가 클래스를 사용하는 방법은모듈화 되어있는 클래스들을 조립하는 방법을 말한다. new 연산자를 통해 사용하는 방법이 있는데 ,참조 변수를 선언하여 사용하는 방법이 있었고, 메서드의 인자를 통해 사용하는 방법이 있었다.  인자를 통해 전달 받은 것을 사용만을 위한 관계로 , use 의 관계라고 할 수 있다.인스턴스를 정의하여 사용하는 것을 사용자 클래스와 사용되어지는 클래스의 관계를 has 관계라고 한다.하나의 클래스가 다른 클래스를 상속하여 확장한 클래스와 부모 클래스간의 관계를 is 관계, 상속관계라고 한다.-> 아래서 좀 더 자세히 보겠다. 상속의 경우.extends 는 상속한다는 의미로 사용되어지는데 , 아래 표를 보면 extends라는 단어를 사용하는 이유를 할 수있다.부모 Car 클래스를 ..

Developer/JAVA 2024.08.06

JAVA , 예제 : 로또 번호 생성기 , 학생 성적순 출력

로또 번호 생성기문제 요점 : 한클래스 내에서 만든다.로또 번호를 정렬하는 메서드를 따로 만들어서 구현할것.메서드는static 으로 정의 하여 사용. 정렬 메서드는 6개의 정수가 인자로 받아 정렬한다. 즉 , 정렬에 대한 메서드가 배열을 인자로 받아야한다는 의미였다. public static void lottoSort(int [] arr) { for (int i = 0; i arr[j]) { int tem = arr[i]; arr[i] = arr[j]; arr[j] = tem; } } } } public static void lottoSortReverse(int [] arr) { for (int i = 0; i  이 메서드를 하나로 합쳐 표현했다. public stat..

Developer/JAVA 2024.08.06

JAVA , 접근 제어자 : 설정자와 접근자

접근 제어자란 ? 클래스 또는 클래스의 멤버들의 접근 범위를 제한하는  것을 말한다.접근 제어자를 통해 코드의 접근성을 제한하여 캡슐화를 강화하고, 잘못된 사용을 방지한다.클래스와 그 구성요소의 노출 범위를 제어하여 코드의 안정성과 보안성을 높이는 중요한 역할을 한다. public : 프로젝트 전체 내 외부, 불문하고 접근 가능protected : 같은 패키지 내 , 클래스 / 상속관계에 있는 하위 클래스 접근 가능 (주로 상속을 통해 접근 허용)defalut : 접근제어자를 명시하지 않은 경우 , 같은 패키지 내에 있는 클래스만 접근가능private : 같은 클래스 내 접근 , 외부나 하위에서 접근 불가 . 데이터 보호위해 사용  그렇다면 접근이 제한된 경우에 멤버들에 대한 접근은 어떻게 해야할까 ? ..

Developer/JAVA 2024.08.05

JAVA , static 과 instance

static 을 공부하기 전 , 알아보는 자바의 운영체제  코드가 실행되어지면 ,클래스들이 실행되어지면서 ,모든 코드들을 메모리에 올려놓고 JVM이 작동되면서 메모리를 할당하여 사용한다. JVM이 코드 실행시에 반드시 필요한 아이와 필요할 때만 쓰면 되는 것을 구분하여 사용한다.반드시 필요한 아이를 static으로 정의하고 (stack area)필요할 떄만 생성하여 쓰는 아이를 instance 로 정의 하여 (heap area)용도에 맞게 메모리를 적절히 나누어 운영하게 된다.메인이 끝나면 , 프로그램이 종료된다. stack 안에 main 이 먼저 아래에 자리하고 , stack은 자료를 담아두는 공간에 대한 용어이다.메서드의 실행 순서(메서드 콜)를 관리한다.제일 마지막에 들어간 데이터가 제일 먼저 나올..

Developer/JAVA 2024.08.04
728x90