본문 바로가기

분류 전체보기223

[Java] 예외처리(exception handling), 에러와 예외의 차이 프로그램 오류(에러의 종류, 에러와 예외) 프로그램 실행 중 오작동을 일으키거나 비정상적인 종료가 일어나게 하는 원인을 프로그램 에러 또는 오류라고 한다. 발생시점에 따라 에러를 구분할 수 있다. 컴파일 에러(compile-time error): 컴파일 시에 발생하는 에러 런타임 에러(runtime error): 실행 시에 발생하는 에러 논리적 에러(logical error): 실행은 되지만, 의도와 다르게 동작하는 것 컴파일 에러는 소스코드(*.java)에 대해 오타나 잘못된 구문, 자료형 체크 등의 기본적인 검사에서 오류가 있을 때에 발생한다. 컴파일이 잘 수행되고 클래스파일을 생성하여 실행하였다고 해도 프로그램 실행 시에 동작을 멈춘 상태로 오랜 시간 지속되거나, 갑자기 프로그램이 실행을 멈추고 종.. 2022. 3. 6.
[알고리즘 문제풀이] 프로그래머스 - 프렌즈4블록 / JAVA(자바) https://programmers.co.kr/learn/courses/30/lessons/17679 코딩테스트 연습 - [1차] 프렌즈4블록 프렌즈4블록 블라인드 공채를 통과한 신입 사원 라이언은 신규 게임 개발 업무를 맡게 되었다. 이번에 출시할 게임 제목은 "프렌즈4블록". 같은 모양의 카카오프렌즈 블록이 2×2 형태로 4개가 붙 programmers.co.kr /** 1. 0,0부터 맵의 범위를 전체 확인(30*30) 2. 2*2블록이 전부 같은 블록인지 확인하고, 다 같다면 지워질 블록으로 별도 체크 2-1) boolean 변수로 같은지 체크 3. 맵 전체 확인 후 체크해놨던 지워질 블록 지우기 4. 지워진 맵에서 아래부터 공간 채우기 5. 1번부터 4번까지 반복하여 변경되는게 없을 때 지워진.. 2022. 3. 6.
[알고리즘 문제풀이] 프로그래머스 - 순위 검색 / JAVA(자바) https://programmers.co.kr/learn/courses/30/lessons/72412 2022. 3. 5.
[Java] 내부 클래스(inner class),익명 클래스 내부 클래스란? 내부 클래스는 클래스 내에 선언된 클래스이다. 내부 클래스를 쓰는 이유는 두 클래스가 긴밀한 관계기 때문이다. 내부 클래스의 장점 - 내부 클래스에서 외부 클래스의 멤버들을 쉽게 접근할 수 있다. - 코드의 복잡성을 줄일 수 있다(캡슐화) class A{ // ... } class B{ // ... } // 내부클래스화 class A{ // 외부클래스 // ... class B{ // 내부 클래스 //... } // ... } 내부 클래스인 B는 외부 클래스 A를 제외하고는 다른 클래스에서 잘 사용되지 않는 것이어야 한다. 내부 클래스의 종류와 특징 내부 클래스 특 징 인스턴스 클래스 (instance class) 외부 클래스의 멤버변수 선언위치에 선언하며, 외부 클래스의 인스턴스멤버처럼.. 2022. 3. 5.
[Java] 인터페이스(interface) 인터페이스란? 인터페이스는 일종의 추상클래스이다. 인터페이스는 추상클래스와 달리 몸통을 갖춘 일반 메서드 또는 멤버변수를 구성원으로 가질 수 없다. 오직 추상메서드와 상수만을 멤버로 가질 수 있다. 추상 클래스를 '미완성 설계도'라고 한다면, 인터페이스는 구현된 것은 아무것도 없고 밑그림만 있는 '기본 설계도'라고 할 수 있다. 인터페이스의 작성 interface 인터페이스 이름{ public static final 타입 상수이름 = 값; public abstract 메서드이름(매개변수목록); } 인터페이스의 멤버들은 제약사항이 있다. - 모든 멤버변수는 public static final 이어야 하며, 생략할 수 있다. - 모든 메서드는 public abstract 이어야 하며, 생략할 수 있다. (단.. 2022. 3. 4.
[Java] 추상클래스(abstract class) -추상화,구체화 추상클래스란? 추상클래스는 미완성 설계도로 비유할 수 있다. 미완성 메서드(추상메서드)를 포함하고 있다는 의미이다. 추상클래스는 클래스로서의 역할은 다 못하지만, 새로운 클래스를 작성하는데 있어서 바탕이 되는 조상 클래스이다. 즉, 새로운 클래스를 작성할때 틀을 제공해준다. 클래스 앞에 'abstract'를 붙이면 추상클래스이다. 이 앞의 'abstract'를 보고 내부에 추상메서드가 있다는 것을 쉽게 알 수 있다. 추상메서드(abstract method) 메서드는 선어부와 구현부로 구성되어 있다. 추상메서드는 선언부만 작성해놓은 것이다. 즉 설계만 하고 실제 수행할 내용은 작성하지 않은 미완성 메서드이다. 메서드의 내용이 상속받는 클래스에 따라 달라질 수 있는 상황에서 쓰인다. /* 주석을 통해 어떤 .. 2022. 3. 4.
[Java] 다형성(polymorphism) - 업캐스팅,다운캐스팅 다형성이란 객체지향개념에서 다형성이란 '여러 가지 형태를 가질 수 있는 능력'을 의미하며, 자바에서는 한 타입의 참조변수로 여러 타입의 객체를 참조할 수 있도록 함으로써 다형성을 프로그램적으로 구현하였다.즉,조상클래스 타입의 참조변수로 자손클래스의 인스턴스를 참조할 수 있도록 구현하였다. class Tv{ boolean power; int channel; void power() { power = !power;} void channelUp() { ++channel; } void channelDown() { --channel; } } class CaptionTv extends Tv{ String text; void caption() { /* ... */ } } CaptionTv c = new CaptionT.. 2022. 3. 4.
[Java] 제어자(modifier) - 접근 제어자와 그 외 제어자(캡슐화) 제어자란 제어자(modifier)는 클래스, 변수 또는 메서드의 선언부와 함께 사용되어 부가적인 의미를 부여한다. 접근 제어자: public, protected, default, private 그외 제어자: static, final, abstract, native, transient, synchronized, volatile, strictfp 클래스,멤버변수,메서드에 주로 사용되며 하나의 대상에 여러 제어자를 조합하여 사용하는 것이 가능하다. 단, 접근 제어자는 한 번에 4가지 중 하나만 선택해서 사용할 수 있다. static - 클래스의, 공통적인 static은 '클래스의' 또는 '공통적인'의 의미를 가지고 있다. 인스턴스변수는 하나의 클래스로부터 생성되었더라도 각기 다른 값을 유지하지만, 클래스변수(.. 2022. 3. 4.