Language/JAVA 33

[JAVA 기초 이론] 예외처리 try / catch / finally

try - catch문 try - catch - finally문 try{ 예외가 발생되면, 즉시 catch문으로 이동 예외가 발생하지 않았다면, 아무일도 일어나지 않는다! // 결제코드(); // 잔액부족 한도초과 카드점검기간 카드단말기 } catch(예외클래스 e){ 해당 예외클래스의 문제가 발생되면, 이곳의 코드를 수행 // 결제된 곳까지의 돈을 다시 되돌려놓기 == rollback } finally{ 예외발생 여부와 무관하게 항상 수행되는 코드 // 통신을 위해 확보해둔 모든 연결스트림 해제 } ✅ 예외처리하면 좋은점 - 프로그램이 비정상적으로 종료되는 것을 막을 수 있음! - 예외가 발생되면서 커질 수 있는 피해들을 최소화 하는 것이 목표! package class01; import java.ut..

Language/JAVA 2023.05.21

[JAVA 기초 이론] 추상클래스 abstract

추상 클래스 abstract class 클래스명{ } 객체화 하는 것이 목표가 아니라 "설계를 하는 것이 목표였던 클래스들" => 클래스들의 기준이 되는 것이 목표 일반 클래스처럼 독립적으로 생성자를 호출해 객체를 생성할 수 없습니다. 자식 클래스의 생성자에서 super()를 통해 추상 클래스의 생성자를 호출하여 부모 객체를 생성한 후 자식 객체를 생성 합니다. ​ 추상 클래스는 직접 객체를 생성할 수 없습니다! ▲ 자식 클래스의 객체를 생성하고, 자식 클래스를 통해 추상 클래스의 메서드 호출이 가능합니다! ​ ✋ 추상클래스를 사용하는 이유 자식 클래스들이 공통적으로 가져야 하는 메서드를 가져야 할 때 부모 클래스의 객체를 생성할 일이 없을 때 ex) 추상클래스 기본예제 package test01; ab..

Language/JAVA 2023.05.19

[JAVA 기초 이론] 캡슐화 private / getter / setter

캡슐화 "민감한" 데이터를 사용자에게 비노출 캡슐화 장점 클래스 안 데이터의 직접 수정을 막고 메서드로만 변경 허용 1. 데이터 보호 2. 내부적으로만 작동하는 코드 숨김 캡슐화 방법 1. 클래스 안 속성(=변수)을 private으로 설정. ※ private 수정자 :동일 클래스에서만 접근 가능. 2. private 설정된 속성에 접근 방법 : public 설정된 get/set 메서드 통해서만 허용. 자바는 클래스 등을 생성할 때, 일반적으로 public을 디폴트 되어있다. public class Test{ String name; int age; } public 모든 곳에서 접근 가능 public class Test{ private String name; private int age; } private ..

Language/JAVA 2023.05.18

[JAVA 기초 이론] 상속 extends

상속 부모 클래스는 자식 클래스에게 상속을 해줄 수 있습니다. 자식 클래스는 부모 클래스를 선택해서, 그 부모의 멤버를 상속받아 그대로 쓸 수 있게 됩니다. // 상위 클래스 정의 class Animal { void sound() { System.out.println("Animal makes a sound"); } } // 상위 클래스를 확장한 하위 클래스 class Dog extends Animal { void sound() { System.out.println("Dog barks"); // 상위 클래스의 메서드를 재정의 } } ✋ 상속 사용하는 이유 ▶ 코드의 재사용성과 유지보수성을 높이는데 큰 역할 📌 상속 특징 재사용성 - 부모 클래스에서 정의된 속성과 메서드를 자식클래스에서 재사용 확장성 - 자..

Language/JAVA 2023.05.18

[JAVA 기초 이론] 멤버변수 static

static - 클래스 변수, 공유 자원 - 객체들 끼리 값 공유 class A{ int a; // 멤버변수, 필드, 속 //int b; // 인스턴스 변수 : 각각의 객체들이 고요한 값을 저장, 객체들끼리 값을 공유 x static int b; // 객체와 무관하게 // 클래스 변수, 공유 자원 //: 주인이 클래스라서 객체들끼리 값을 공유 o void printInfo(){ System.out.println("a="+this.a); System.out.println("b="+this.b); } } public class Test01 { public static void main(String[] args) { A a1=new A(); a1.a=10; a1.b=10; A a2=new A(); a2.a=1..

Language/JAVA 2023.05.18

[JAVA 기초 이론] 컬렉션 프레임워크: 배열리스트

향상된 배열 == 배열리스트 ArrayList data = new ArrayList(); ArrayList data=new ArrayList(); 데이터를 마음대로 저장 가능 toString() 오버라이딩 add(),remove(),clear(),size(),get(),..와 같은 다양한 기능의 메서드를 기본제공 서로 다른 자료형(타입)들도 저장가능 => 그러나, 반드시 서로 같은 자료형만 취급!! => 그래서, 강제성을 부여하여 사용합니다! ** 제네릭 : 일반화, 배열리스트에 저장될 타입 강제 데이터 추가 데이터 모두 지우기 데이터 지우기 데이터 가져오기 데이터 사이즈 data.add(); data.clear(); data.remove(); data.get(); data.size(); data.add..

Language/JAVA 2023.05.18

[JAVA 기초 이론] 캐스팅 / instanceof / equals

✅ instanceof 연산자 객체가 특정 클래스의 인스턴스인지를 확인하는데 사용 형 변환 전에 instanceof 연산자를 사용하여 객체의 타입을 확인하여 안전하게 형 변환을 수행 if (animal instanceof Dog) { Dog dog = (Dog) animal; // 안전한 다운캐스팅 } 캐스팅? 데이터 타입을 변환하는 과정 ✋ instanceof를 사용하는 이유 ▶ 안전한 형 변환 ▶ instanceof 연산자는 객체 지향 프로그래밍에서 객체의 타입을 동적으로 확인하고 처리할 때 유용하게 사용 ex) class Animal { public void sound() { System.out.println("Animal makes a sound"); } } class Dog extends Ani..

Language/JAVA 2023.05.11

[JAVA 기초 이론] 랜덤 생성 Random

Random rand=new Random(); -> ctrl + shift + 0 : 자동임포트 -> 자료형 변수명 = rand.nextInt(); ex) 자료형 : int N=rand.nextInt(10)+1; -> 1~10까지 랜덤수 Random rand=new Random(); int randNum=rand.nextInt(3)+3; -> 3~5까지 랜덤 자리수 int[] data=new int[randNum]; -> 배열 자리 수를 위의 랜덤 자리수로 한다는 의미 ex) 배열 0~100사이 랜덤수 int[] stu=new int[6]; Random rand=new Random(); for(int i=0;i [최대값찾기 알고리즘] 활용 int min=stu[0]; int minIndex=0; for(..

Language/JAVA 2023.05.11

[JAVA 기초 이론] 최대값, 최소값 찾기 알고리즘

: 값이 정렬되어있을 때 > 배열에서 사용 ✅ 최대값 찾기 알고리즘배열의 첫번째 값을 이미로 최대값으로 설정최대값 위치도 0으로 초기화int max=data[0];int maxIndex=0;for(data의 길이){ if(max max보다 큰값을 발견하면 변화발생 max=data[i]; maxIndex=i; }} ex)public static void main(String[] args) { // 상황) 학생 N명 // 총점수합 // 평균점수 // 1등이 몇번인지? int[] stu=new int[5]; stu[0]=20; stu[1]=12; stu[2]=63; stu[3..

Language/JAVA 2023.05.10