본문 바로가기

Java/문법21

Java Exception-try catch로 예외 상황 처리하기 Exception (예외)은 일반적으로 "에러"라고 불리는 프로그램 실행 중 발생하는 의도치 않은 문제를 의미자바에서는 오류를 Error와 Exception으로 구분한다. Error: 시스템이 종료되어야 할 정도로 심각한 문제를 나타냅니다. 예를 들어, 메모리 부족이나 스택 오버플로우와 같은 상황이 포함됩니다. 이러한 오류는 복구할 수 없으며, 프로그램이 비정상적으로 종료될 수 있습니다. Exception: 프로그램 실행 중 발생할 수 있는 예기치 않은 이상 상태를 나타냅니다. 예외는 발생하더라도 적절한 예외 처리를 통해 복구할 수 있습니다. 예를 들어, NullPointerException이나 ArrayIndexOutOfBoundsException 같은 런타임 예외가 있습니다. 자바에서는 try-cat.. 2024. 12. 17.
Java 이름과 점수의 쌍(pair)으로 저장 하는 HashMap 학생 이름, 점수를 저장하려 한다.         //이순신, 95         //홍길동, 80         //김나나, 70 이름과 점수의 쌍(pair)으로 저장 하는 HashMap홍길동 몇점이야 라고 물으신다면? 80점이라고 바로 대답해드림 이 pair를 key-홍길동과 value-80라고 합니다. ArrayList와 HashMap의 차이ArrayList:구조: 동적 배열을 기반으로 하며, 요소를 순차적으로 저장합니다.중복 허용: 동일한 값을 여러 번 저장할 수 있습니다.순서 유지: 요소가 삽입된 순서를 유지합니다.HashMap:구조: 키-값 쌍으로 데이터를 저장합니다.하나의 키에 하나의 값만 저장중복 허용: 동일한 키를 사용할 수 없으며, 키는 유일해야 합니다.순서 미보장: 삽입 순서를 기억하.. 2024. 12. 17.
Java Array기본문법의 진화! 동적배열을 이용한 ArrayList Data Structure데이터를 조직하고 관리하는 방법을 의미여러 개의 데이터를 하나의 변수에 저장할 수 있는 구조를 제공- CRUD 가 가능해야한다. (신규데이터를 생성, 읽기, 갱신, 삭제 할 수 있어야한다.) but 기본 배열 Array문법은 생성 시 배열크기를 먼저 정해둬야하고 추후 크기변경이 불가하다 > 추가 생성에 제약이 있음! 따라서 자바에서는 개수제한없이 데이터를 마음대로 추가할 수 있는 ArrayList, HashMap를 사용한다.그 중 ArrayList에 대해 먼저 배워보자!  ArrayList:구조: 동적 배열(크기가 고정되지 않고, 필요에 따라 자동으로 크기를 조절할 수 있는 배열)을 기반으로 하며, 요소를 순차적으로 저장합니다.중복 허용: 동일한 값을 여러 번 저장할 수 있습니다.. 2024. 12. 17.
Java 다양한 문자열의 함수 문자열 생성하는  2가지 방법//문자열 생성하는 방법 2가지!//1 일반적으로 쓰는 문자열 리터널String str1="Hello";//2 String 생성자를 이용 (코드도 길고, 메모리관리에 적합하지 않아 1을 많이 쓴다)String str2=new String("Hello"); 번외! 문자열 리터널을 쓰는게 좋은이유String str1="Hello";String str2=new String("Hello");String str3="Hello";String str4=new String("Hello");똑같은 문자열을 저장한 4개의 객체어떤 차이가있을까? 문자열리터널은 String Constant Pool이라는 특별한 메모리 영역에 저장된다.  이 영역은 동일한 문자열 리터럴이 여러 번 사용될 때, 메모.. 2024. 12. 16.
Java의 꽃 상속 - Interface 상속 시리즈1) Extend, Overriding2) Abstract 3) Interface   대망의 상속 마지막 키워드 interface에 대해 알아봅시다. 자바클래스 생성시 인터페이스를 선택하여 만들수도 있고, class 대신 insterface라고 입력하여 사용할 수도 있다. package entity;public interface Card { 인터페이스는 클래스 키워드를 사용하지 않는다.= 인터페이스는 클래스가 아니다!   클래스와 인터페이스는 무슨 차이가 있지?인터페이스는 일반적인 변수가 올 수 없다. (상수 static는 가능!) 변수 불가  상수 가능! public static final int CLOVER = 1;  CLOVER의 값이 1로 정해졌기때문에 10으로 변경불가 final: J.. 2024. 12. 16.
Java의 꽃 상속 - Abstract (추상클래스) 상속 시리즈1) Extend, Overriding2) Abstract 3) Interface      // 부모 클래스에서 print라는 함수를 만들건데,    // 이 클래스를 상속받을 사람들은     // 자기네들이 알아서 메소드를 작성할거니까 (==오버라이드)     // 내가 코드 구현은 하지 않고, 함수이름만 통일해주자! 메소드의 시그니처만 정의하고, 구체적인 구현은 없는 메소드 = 추상메소드(Abstract)  public abstract void print();    // 이름만 작성하고 메소드 내용은 작성 X, {}도 안써도 된다.     // 함수이름은 정해두고(통일), 내용은 각 클래스에서 작성     // abstract 뜻은 추상적이다~    // 클래스 이름 앞에 abstract도.. 2024. 12. 16.
Java 접근 제어자 private, protected, public OOP(Object-Oriented Programming)의 4대 원칙캡슐화 (Encapsulation): 객체의 데이터와 그 데이터를 처리하는 메서드를 하나로 묶어 외부에서 직접 접근할 수 없도록 하는 것입니다. 이를 통해 데이터의 무분별한 변경을 방지하고 객체의 안정성을 높입니다.상속 (Inheritance): 기존의 클래스를 기반으로 새로운 클래스를 생성하는 기능으로, 코드의 재사용성을 높이고 중복된 코드 작성을 줄입니다. 예를 들어, '동물' 클래스에서 '포유류' 또는 '조류' 클래스를 파생시킬 수 있습니다.다형성 (Polymorphism): 같은 이름의 메서드가 서로 다른 형태로 동작할 수 있는 능력입니다. 이는 메서드 오버로딩과 오버라이딩을 통해 구현되며, 유연한 코드 작성을 가능하게 합니다... 2024. 12. 15.
Java 반복문 for, while for (초기화; 조건식; 증감식) { // 반복할 코드 } 반복문 for ( int i=0 ; i // int i = 0  i(index) 변수에 0을 저장// 조건식: i // 증감식: i에 +1하여 저장// true면 반복// i가 5가 되면 False이니 실행중단 while (조건식) { // 반복할 코드 } 반복문 int i = 0; while ( i // i 가 0// → i가 5보다 작으면 System.out.println("Hello");// 5보다 커지면 종료  int i = 0;while ( i // i=i+1 은 줄여서 i++로 나타낼 수 있다증가 감소 연산자  // 1,2,3,4,5를 더하는 식// 더할 숫자들 데이터 입력int[] number .. 2024. 12. 15.
Java 조건문 if-else, switch-case if-else문// 가격이 3000원보다 싸면, "가격이 좋습니다."라고 출력하고// 그렇지 않으면 "비싸네요"라고 출력하세요.// ~라면, ~해라 // if (~라면){~해라} else {아니면 ~ 해라}{} 코드로 블록 구분 if(price  조건 연산자- 조건식 ? 결과 1 : 결과 2; 로도 가능가독성과 간결함 중 어느쪽이 우선일지 고려해서 선택하자public class Test { public static void main(String[] args) { int price = 2000; String massage = (price  if-else if-else로 여러 조건을 표현할 수도 있다.public class Test { public static.. 2024. 12. 15.