java기초14 [ Backjoon - 25556번 ] 포스택 ( with java ) [ Backjoon - 25556번 ] 포스택 ( with java ) https://www.acmicpc.net/problem/25556 25556번: 포스택 포닉스가 순열을 청소할 수 있으면 YES, 불가능하다면 NO를 출력한다. www.acmicpc.net 📚 Table of Contents 문제 입력 출력 예제 문제 풀이 문제 접근 ( 알고리즘 ) 입력 첫째 줄 입력 : 순열의 길이 N (1 2023. 11. 17. [ Java ] 13. 예외 처리 ( exception handling ) [Java] 13. 예외 처리 ( exception handling ) 📚 Table of Contents 01. 오류 종류 논리 에러 (Logic Error) 논리적 에러는 이른바 '버그'라고 생각하면 된다. 프로그램이 실행하고 작동하는 데는 아무런 문제가 없는 오류이지만, 결과가 예상과 달라 사용자가 의도한 작업을 수행하지 못하게 되어 서비스 이용에 지장이 생길 수 있다. 논리적 오류는 컴퓨터 입장에서는 프로그램이 멀쩡히 돌아가는 것이니 에러 메시지를 알려주지 않는다. 따라서 개발자는 프로그램의 전반적인 코드와 알고리즘을 체크 필요가 있다. 컴파일 에러 (Complillation Error) 컴파일 에러는 컴파일 단계에서 오류 발견하면 컴파일러가 에러 메시지 출력해 주는 것을 말한다. 컴파일 에러 발.. 2023. 11. 9. [ Java ] 12. 자바 입출력 [Java] 12. 자바 입출력 📚 Table of Contents 01. 자바 입출력과 스트림 스트림이란? 자바에서 모든 입출력은 스트림(Stream)을 통해 이루어진다. 입출력 장치는 매우 다양하여 장치에 따라 입출력 부분을 일일이 다르게 구현하면 프로그램 호환성이 떨어질 수 밖에 없다. 이런 문제를 해결하기 위해 자바는 입출력 장치와 무관하고 일관성 있게 프로그램을 구현할 수 있도록 일종의 가상 통로인 스트림을 제공한다. 자료를 읽어 들이려는 소스(source)와 자료를 쓰려는 대상(target)에 따라 각각 다른 스트림 클래스를 제공한다. 입, 출력 스트림 어떤 대상으로부터 자료를 읽어 들일 때 사용하는 스트림이 입력 스트림이다. 편집 화면에 사용자가 쓴 글을 파일에 저장할 때는 출력 스트림을 사.. 2023. 11. 9. [ Java ] 11. 내부 클래스 ( inner class ) [ Java ] 11. 내부 클래스 ( inner class ) 📚 Table of Contents 01. 내부 클래스란 내부 클래스(inner class)란 하나의 클래스 내부에 선언된 또 다른 클래스를 의미한다. 내부에 정의된다는 점을 제외하고는 일반적인 클래스와 다르지 않다. 우리가 어느 클래스에 변수나 상수가 필요하다면 클래스 멤버로서 클래스 내에서 선언하여 사용해 왔듯이, 선언 주체를 변수에서 클래스로 바꾼다면 그것이 내부 클래스인 것이다. 이처럼 내부 클래스는 보통 두 클래스가 서로 긴밀한 관계가 있거나, 하나의 클래스 또는 메서드에서만 사용되는 클래스일 때 이용되는 기법이다. class Outer { // 외부 클래스 ... class Inner { // 내부 클래스 ... } ... } 내.. 2023. 11. 9. [ Java ] 10. 인터페이스 ( interface ) [ Java ] 10. 인터페이스 ( interface ) 📚 Table of Contents 01. 인터페이스 인터페이스도 추상 클래스와 비슷하게 다른 클래스를 작성하는데 도움을 주는 목적으로 작성한다. 다만 인터페이스는 추상 클래스보다 추상화 정도가 높아 추상 클래스와 다르게 구현부가 있는 일반 메서드, 일반 변수 멤버 등을 가질 수 없다. 즉, 인터페이스는 구현된 게 아무것도 없는 기본 설계도라고 할 수 있다. 인터페이스 또한 인스턴스를 생성할 수 없다. // 인터페이스 선언 접근제어자 interface 인터페이스이름 { public static final 타입 상수이름 = 값; ... public abstract 메소드이름(매개변수목록); ... } // 인터페이스 구현 class 클래스이름 im.. 2023. 11. 9. [ Java ] 09. 추상 클래스 ( abstract class ) [ Java ] 09. 추상 클래스 ( abstract class ) 📚 Table of Contents 01. 추상 클래스 (abstract class) 추상 클래스(Abstract Class)는 추상 메서드를 선언해 놓고 상속을 통해 자식 클래스에서 메서드를 완성하도록 유도하는 클래스이다. 이러한 특성 탓에 미완성 설계도라고 표현하기도 한다. 실체클래스의 공통적인 부분( 변수, 메서드 )을 추출해서 선언한 클래스이다. 실체가 없고 구체적이지 않기 때문에 추상클래스는 객체를 생성할 수 없다. 추상클래스와 실체클래스는 상속관계이다. abstract class 클래스이름 { ... abstract 반환타입 메소드이름(); ... } 추상 클래스는 추상 메서드를 가지지 않아도 괜찮다. 다만, 추상 메서드를 .. 2023. 11. 9. [ Java ] 08. 다형성 ( Polymorphism ) [ Java ] 08. 다형성 ( Polymorphism ) 📚 Table of Contents 01. 다형성 ( Polymorphism ) 다형성이란 하나의 객체가 여러 가지 형태를 가질 수 있는 것을 의미한다. 자바에서 다형성은 한 타입의 참조 변수를 통해 여러 타입의 객체를 참조할 수 있도록 하는 것이다. 즉, 상위 클래스 타입의 참조 변수를 통해서 하위 클래스의 객체를 참조할 수 있도록 허용하여 상위 클래스가 동일한 메시지로 하위 클래스들이 서로 다른 동작을 할 수 있도록 한다. 다형성을 활용하면, 부모 클래스가 자식 클래스의 동작 방식을 알 수 없어도 오버라이딩을 통해 자식 클래스에 접근할 수 있다. 다형성의 장점 유지보수 : 여러 객체를 하나의 타입으로 관리할 수 있어 유지보수가 용이하다. 재.. 2023. 11. 9. [ Java ] 07. 상속 ( Inheritance ) [ Java ] 07. 상속 ( Inheritance ) 📚 Table of Contents 01. 상속 ( Inheritance ) 부모 클래스(상위 클래스)와 자식 클래스(하위 클래스)가 있으며, 자식 클래스는 부모 클래스를 선택해서, 그 부모의 멤버를 상속받아 그대로 쓸 수 있게 된다. 상속은 기존의 클래스에 기능을 추가하거나 재정의하여 효율적이고 개발 시간을 줄여준다. 이러한 상속은 캡슐화, 추상화와 더불어 객체 지향 프로그래밍을 구성하는 중요한 특징이다. 상속을 하더라도 자식 클래스가 부모의 모든 것들을 물려받는 것은 아니다. 부모 클래스의 private 접근 제한을 갖는 필드 및 메서드는 자식이 물려받을 수 없다 부모와 자식 클래스가 서로 다른 패키지에 있다면, 부모의 default 접근 제한.. 2023. 11. 9. [ Java ] 06. 클래스 ( class ) 와 객체 [ Java ] 06. 클래스 ( class ) 와 객체 📚 Table of Contents 자바 프로그래밍을 OOP(객체 지향 프로그래밍)이라고도 한다. 현실에서도 특정 제품을 만들 때 여러 가지 부품들을 각각 만들어 하나로 조립해서 제품을 생산하듯 프로그래밍적으로도 여러 가지 객체(Object)를 각각 만들어서 하나로 조립하는 프로그래밍 기법을 객체 지향 프로그래밍이라고 한다. 자바에서 객체는 클래스를 통해 생성하실 수 있다. 01. 클래스 클래스 클래스의 구성 맴버 설명 필드(Field) 객체의 데이터가 저장되는 곳 생성자(Constructor) new 연산자로 호출되는 메소드로 객체 생성 시 필드의 초기화를 담당 메소드(Method) 객체의 동작에 해당하며 클래스의 다양한 동작을 구성 클래스 내부.. 2023. 11. 9. [ Java ] 05. 다차원 배열 ( multi-dimensional array ) [ Java ] 05. 다차원 배열 ( multi-dimensional array ) 📚 Table of Contents 배열 2023.11.08 - [Language/Java] - [Java] 01. 변수와 자료형 01. 다차원 배열 다차원 배열이란 2차원 이상의 배열을 의미하며, 배열 요소 안에 또 다른 배열을 가지는 것을 의미한다. 2차원 배열 : 배열의 요소로 1차원 배열을 가지는 배열 3차원 배열 : 배열의 요소로 2차원 배열을 가지는 배열 02. 2차원 배열의 선언 및 생성방법 자바에서는 2차원 배열을 나타내는 타입을 따로 제공하지 않는다. 대신에 1차원 배열의 요소로 또 다른 1차원 배열을 사용할 수 있다. // 문법 타입[ ][ ] 배열이름; 타입 배열이름 [ ][ ]; 타입[ ] 배열이름.. 2023. 11. 9. 이전 1 2 다음