java(70)
-
[Java] Collection
1. Collection Framework 데이터를 저장하기 위한 개발자들의 몸부림. 배열 : 동일한 데이터 타입만 관리 가능 Object 배열 : 런타임에 실제 객체의 타입 확인 후 사용해야 함. Generic : 형변환의 번거로움 제거 한계점 : 한번 정해진 배열의 크기를 변경할 수 없다. 이미지 출처 : https://beginnersbook.com/java-collections-tutorials/ 모든 Collection은 Iterator interface를 구현한다. Iterator는 3 가지 메서드를 가지고 있다. 이러한 기능을 조합하면 다수의 데이터를 순차적으로 처리할 수 있다. Iterator (Java Platform SE 7 ) An iterator over a collection. I..
2024.01.28 -
[Java] 예외 처리
1. 예외 처리 심각도 : Error > Exception Error Exception 상황 프로그램을 잘못 작성 자바가 해결할 수 없는 심각한 오류 프로그램을 잘못 작성한 경우 프로그램의 작성 의도와 달리 사용되는 경우 자바가 처리할 수 있는 오류 대처 디버깅으로 코드 개선 디버깅으로 코드 개선 예외 처리 코드로 상황 수습 예 메모리 부족, stack overflow 등 null인 객체의 사용, 1/0, 읽으려는 파일이 없음. 예외 처리 exception handing 예외 발생 시 프로그램의 비정상 종료를 막고 정상적인 실행 상태로 복구하기. 가. 예외 클래스의 계층 출처 : https://www.shiksha.com/online-courses/articles/exception-handling-in-..
2024.01.28 -
[Java] String
1. String 객체의 불변의 원칙 String 문자열은 불변한다. String ss = "java"; ss = "algo"; ”java”는 “algo"로 변하지 않는다. 값이 “java”와 “algo”인 2개의 String 객체를 생성한다. ss는 참고값만 바꾼다. ss = ss.toUpperCase(); toUpperCase() : 모든 소문자를 대문자로 만든 String 객체를 반환한다. 하지만 기존의 객체(ss)는 변하지 않는다. toUpperCase()가 새로운 문자열을 결괏값으로 반환할 뿐이다. public class ST { ST(){ String s = "j"; m1(s); System.out.println(s); StringBuilder sb = new StringBuilder("A")..
2024.01.22 -
[Java] 인터페이스
1. abstract class 가. 추상 클래스 정의 클래스들의 공통 모듈을 모아서 상속 구조로 정리 public class Vehicle { private int curX, curY; public void reportPosition() { System.out.printf("차종: %s: 현재 위치: (%d, %d)%n", curX, curY); } public void addFuel() { System.out.println("모든 운송 수단은 연료가 필요"); } } public class ElectricCar extends Vehicle{ private int curX, curY; public void reportPosition() { System.out.printf("차종: %s: 현재 위치: (..
2024.01.22 -
[Java] 다형성
다형성에 대하여 정리하기 전에 접근제한자를 활용하는 거 조금 공부함. 1. 접근제한자 활용 가. Encapsulation 데이터를 외부에 직접 노출시키지 않고 메서드를 이용해 보호할 수 있다. 변수는 private로 접근 제한. getter와 setter 메서드를 통해서 접근하도록 한다. class UserInfo { private String name = "대상혁"; private int account = 10000; public String getName() { return name; } public void setName(String name) { if(name == null) { System.out.println("name은 not null!!"); return; } this.name = name..
2024.01.22 -
[Java] 상속
1. 상속 가. 객체지향 언어의 특징 특성 내용 추상화 현실의 객체를 추상화 해서 클래스를 구성한다. 다형성 하나의 객체를 여러 가지 타입으로 참조할 수 있다. 상속 부모 클래스의 자산을 물려받아 자식을 정의함으로 코드의 재사용이 가능하다. 캡슐화 데이터를 외부에 직접 노출시키지 않고 메서드를 이용해 보호할 수 있다. 나. 상속 Inheritance 상위 클래스의 멤버를 하위 클래스에서 재사용하기 위함. 유지보수성 향상 extends 키워드 사용. 부모의 생성자와 private 제한자가 붙은 경우는 상속되지 않음. public class Person { String name; void eat() { System.out.println("냠냠"); } void jump() { System.out.printl..
2024.01.21 -
[Java] 객체지향
1. 객체 객체 : 주체가 아닌 것, 주체가 활용하는 것. 장점 신뢰성이 높은 프로그래밍이 가능하다. 추가/수정/삭제가 용이하다. 재사용성이 높다. 단점 실행속도가 느린 점 메모리 사용량이 높음. 2. Class vs Object 현실의 객체가 갖는 속성과 기능은 추상화(abstraction) 되어 클래스에 정의된다. 클래스는 구체화되어 프로그램의 객체(instance, object)가 된다. 클래스 객체를 정의해 놓은 것, 객체의 설계도. 데이터 타입 객체 클래스를 데이터 타입으로 메모리에 생성되어 실제로 동작하는 것 메모리에 생성된 데이터 3. 객체 생성과 메모리 public class Person { // 객체의 속성, 데이터 String name; int age; boolean isHungry; ..
2024.01.21 -
[Java] 배열
1. 배열 가. Array Type int a int[] arr arr의 타입은 Reference Type 중 Array Type이다. 나. 배열 선언 int[] arr = new int[3]; // int가 들어가는 크기가 3인 배열 선언 arr는 생성된 배열을 참조하는 reference 타입 변수다. int arr[], int[] arr 모두 가능하지만 int[]로 통일해서 사용하자. int[] b = new int[]{1,2,3,4,5}; //추천 int[] c = {1,2,3,4,5} 생성과 초기화를 동시에 가능. int err[]; err = {1,2,3,4} 아래는 에러가 발생함. 한 줄 단위로 컴파일하기 때문에 컴파일러가 {1,2,3,4}를 이해하기 어렵기 때문에. 아래는 자료형마다 가지는 ..
2024.01.21