Java 47

[Java] 10. 예외처리 (1)

: 프로그램 실행 시 발생할 수 있는 예기치 못한 예외의 발생에 대비한 코드를 작성하는 것1. 오류와 예외(1) 오류: 시스템 상에서 프로그램에 심각한 문제가 발생하여 실행중인 프로그램이 종료되는 것- 개발자가 미리 예측하거나 코드로 처리하는 것이 불가능한 경우를 말한다.- ex) JVM 에러, 메모리 초과, 정전 등 (2) 예외: 개발자가 미리 예측하고 처리할 수 있는 미약한 오류- 개발자가 적절히 처리하여 코드의 흐름은 컨트롤(비정상적인 종료 or not) 할 수 있다.  2. 예외 클래스의 종류(1) 예외 클래스의 계층 구조  3. Checked Exception과 Unchecked Exception- Checked Exception은 컴파일 예외클래스, Unchecked Exception은 런타임..

Java 2024.08.21

프로그래머스 #42586 기능개발

https://school.programmers.co.kr/learn/courses/30/lessons/42586 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  이 문항은 3가지 정도 방법으로 스스로 풀어보았다. 스택을 이용한 풀이,큐를 이용한 풀이,그냥 풀이이렇게 3가지이다. 풀이(1) 스택을 이용한 풀이import java.util.*;class Solution { public int[] solution(int[] progresses, int[] speeds) { Stack stack = new Stack(); ..

프로그래머스 #12906 같은 숫자는 싫어

내가 처음 작성했던 코드는 아래와 같다.public class Solution { public int[] solution(int []arr) { Stack stack = new Stack(); int[] answer; int temp = arr[0]; stack.push(temp); for (int i = 1; i stack을 이용해 풀어보았다. arr[0]을 temp 변수에 넣고,temp을 stack에 넣은 뒤arr을 순회하면서 temp와 값이 다르면 그 값을 temp에 넣고 다시 stack에 push하는 방식이다. 문제를 잘 해결했다고 생각했는데,코드를 실행시켜보면 stack.size()가 4여서 answer의 길이가 4가 됐음에도 ..

[Java] 배열의 값을 출력하기(반복문, Arrays.toString())

public class PrintArray { public static void main(String[] args) { int[] array = {1, 2, 3, 4, 5}; System.out.println(array); }} 배열 array을 출력하는 코드를 위와 같이 작성했다.하지만 출력해보면 결과는 아래와 같다. 이 결과값은 배열 array의 메모리 주소값이다.즉, 배열 변수를 출력하게 되면 메모리 주소값이 출력되므로 배열에 있는 원소들을 출력하기 위해서는 반복문을 이용하거나,java.util.Arrays 패키지의 toString() 메소드를 사용해주어야 한다.  방법 1. 반복문 이용하기public class PrintArray { public stati..

Java 2024.08.11

Java(9) 자주 쓰는 API - Object 클래스, String 클래스, 이스케이프 문자

1. Object 클래스- 자바에서의 최상위 부모 클래스로, 모든 클래스는 Object 클래스를 상속하고 있으므로 Object 안에 있는 메소드 사용 가능- java.lang.Object(1) toString(): "인스턴스 생성 시 사용한 full class name + "@" + 16진수 해시코드" 가 문자열로 반환- 16진수 해시코드는 인스턴스의 주소를 가리키는 값으로 인스턴스마다 다른 값 반환 (2) equals(): 매개변수로 전달받은 인스턴스와 동일 객체인지 비교- 동일 객체 : 주소가 동일한 인스턴스- 동등 객체 : 주소가 다르더라도 필드 값이 동일한 인스턴스 (3) hashCode(): 객체의 메모리 주소값을 이용해 해시코드(객체를 식별하는 값)를 만들어 반환- equals() 메소드를 재..

Java 2024.08.08

Java(8) 추상클래스와 인터페이스

1. 추상 클래스(1) 추상클래스란?: 추상 메소드를 0개 이상 포함하는 클래스 (추상 메소드가 없어도 추상 클래스로 만들 수 있다.)- 추상 메소드: 메소드의 기능이 없고 헤더부만 존재하는 불완전한 메소드- 추상 메소드가 있으면 반드시 추상 클래스로 만들어야 한다.- 스스로 자신의 생성자를 활용한 인스턴스 생성 불가(불완전한 클래스) -> 추상클래스는 상속을 활용해 하위 클래스 타입의 인스턴스를 이용해서 인스턴스 생성해야 한다.// 추상 클래스 선언public abstract class Product { // 추상 클래스는 필드를 가질 수 있다. private int nonStaticField; private static int staticField; // 추상 클래스는 생성자를 ..

Java 2024.08.08

Java(7) 다형성

1. 다형성(Polymorphism)이란?: 하나의 인스턴스가 여러가지 타입을 가질 수 있는것을 의미한다.- 하나의 타입으로 여러 타입의 인스턴스를 처리할 수 있고, 하나의 메소드 호출로 객체 별로 각기 다른 방법으로 동작하게 할 수도 있다. * cf. 객체지향 프로그래밍의 3대 특징: 1) 캡슐화 2) 상속 3) 다형성  2. 다형성의 장점1) 여러 타입의 객체를 하나의 타입으로 관리 가능 -> 유지보수성 & 생산성 증가Car[] carr = new Car[5];carr[0] = new Sonata();carr[1] = new Morning();carr[2] = new Avante();carr[3] = new Grandure();carr[4] = new Porter();for(Car car : carr..

Java 2024.08.08

Java(6) 상속

1. 상속이란?: 부모 클래스가 가지는 멤버(필드, 메소드)를 자식 클래스가 물려받아 자신의 멤버인 것처럼 사용할 수 있도록 만든 기술- 생성자는 물려받지 않는다.- 부모 클래스의 private 멤버는 상속되지 않는다.  (하지만 부모 클래스가 private 멤버에 대한 접근을 제공하는 protected 또는 public 메서드를 정의하면,   자식클래스는 이를 통해 간접적으로 private 멤버에 접근 가능)- 멤버 외에도 부모 클래스의 타입도 상속된다. (다형성의 토대)- 상속 구조로 인해 불필요한 기능이 추가될 수도 있다.- 자바는 단일상속(자식 클래스는 하나의 부모 클래스만 갖는다.)만 지원한다. 2. 상속의 키워드(1) IS-A- IS-A 관계가 성립하는 경우 상속 사용 가능  ex) FireC..

Java 2024.08.07

Java(4) 클래스와 객체

1. 클래스: 사용자 정의 자료형으로, 서로 다른 타입의 데이터와 메소드를 정의하여 만든 사용자 정의 타입이다.- 클래스를 사용하려면 new 연산자로 heap 영역에 할당해야 한다. (heap 영역은 기본적으로 JVM 초기값으로 초기화된다.)public class Member { String id; String pwd; String name; int age; char gender; String[] hobby; // 배열 필드도 있을 수 있다.}public class Application { public static void main(String[] args) { Member member = new Member(); // "레퍼런스변수명.필드명..

Java 2024.08.07

Java(3) API(Application Programming Interface)

1.API란?: 응용프로그램에서 사용할 수 있도록 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있도록 만든 인터페이스. 즉, 우리가 구현하기 번거로운 기능들을 JDK를 설치하면 사용할 수 있도록 제공한 소스코드(클래스나 인터페이스)들을 의미한다. 2. Math 클래스public static void main(String[] args) { // java.lang 패키지의 Math 클래스 // 절댓값 출력 System.out.println(Math.abs(-7)); // 최솟값 출력 System.out.println(Math.min(10, 20)); // 최댓값 출력 System.out.println(Math.max(10, 20)); ..

Java 2024.08.06