본문 바로가기

java/자바_정리27

자바 API 사용 MinMaxFinder를 만들어 직접 배열에서의 최대 최소값을 찾아본다 import corce2.model2.MinMaxFinder; public class MinMaxFinderTest { public static void main(String[] args) { int[] arr ={5,3,9,1,7}; int max = MinMaxFinder.finderMax(arr); int min = MinMaxFinder.finderMin(arr); System.out.println(min); System.out.println(max); } } public class MinMaxFinder { public static int finderMin(int[] arr){ int min=arr[0]; //배열의 첫번째 .. 2023. 12. 7.
자바 ↔ JSON 변환하기 Gson API를 사용하여 자바와 JSON을 서로 변환하여 객체를 다룬다. JSON이란 "JavaScript Object Notation"의 약자로 경량의 데이터 교환 형식이다. 프로그래밍 언어나 플랫폼에 상관없이 데이터를 교환할 수 있도록 설계 되었다. 또한, key-value pair로 데이터 객체를 표현한다 ++ Gson을 사용하려면 라이브러리를 직접 추가 하여야 한다. 프로젝트 구조 - 라이브러리 - + gson public class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } public String getNama() {re.. 2023. 12. 7.
추상클래스와 인터페이스 #1. 추상클래스란 - 다형성을 일부 보장하기 위해 등장 - 서로 비슷한 클래스의 공통부분을 묶을 때 사용 - 단독으로 객체를 생설 할 수 없다 ex) Animal ani = new Animal() - 부모의 역할로 사용한다(Upcasting) ex) Animal ani =new Dog(): - 구현된 메서드를 가질 수 있다 import ploy.*; public class AbstractTest { public static void main(String[] args) { Animal ani = new Dog(); ani.eat(); ani.move(); } } package ploy; public abstract class Animal { public abstract void eat(); public .. 2023. 12. 6.
다형성(ploymorphism) 다형성의 전제조건 1. 상속관계 2. Override //(동적바인딩 : 실행시점에서 사용될 메서드가 결정되는 바인딩) 제일 중요. ↔ 오버로딩(정적바인딩 : 컴파일 시점에서 사용될 메서드가 결정되는 바인딩) 3. Upcasting 4. 동적바인딩 다형성 인수 public static void main(String[] args) { /* Animal ani =new Dog(); ani.eat(); //실행시점에서 사용될(호출될) 메서드가 결정되는 바인딩(동적바인딩) ani=new Cat(); ani.eat(); */ Dog d= new Dog(); display(d); Cat c =new Cat(); display(c); } private static void display(Animal i){ //다형성.. 2023. 12. 5.
객체형변환(Objet Casting) Upcasting - 부모가 자식을 가리키는 객체생성방법 Downcasting - 자식이 부모를 가리키는 객체생성방법 public class ObjectCasting { public static void main(String[] args) { Animal ani =new Dog(); //업캐스팅 ani.eat(); ani =new Cat(); ani.eat(); ani.night(); Cat c = (Cat)ani;//다운캐스팅 c.night(); ((Cat)ani).night(); //다운캐스팅 한줄로 표현 } } 2023. 11. 30.
상속관계에서 객체생성 방법(super(), Override) 상속체이닝 - 맨 위 부모클래스부터 객체가 생성되어 자식까지 연결되는 구조 super() - 상위클래스의 생성자 호출 하는 메서드 Override(재정의) - 상속관계에서 하위 클래스가 상위 클래스의 동작을 재정의 하는 행위(기능 추가, 변경 ) Override를 하는 이유는 부모클래스에서 기능을 실행 했을때 자식클래스에 있는 기능을 실행하려고 한다. 만약 재정의를 하지 않았으면 실행결과는 "동물처럼 먹다" 가 출력 재정의 한 후 "개처럼 먹다", "고양이처럼 먹다" 가 출력 //부모클래스 public class Animal { public Animal() { //super(); } public void eat(){ System.out.println("동물처럼 먹다") } public void night.. 2023. 11. 30.
상속관계에서의 객체 (super()사용) 상속관계일때 객체 생성시 초기화는 부모클래스에서해야 함,(자식클래스가 하는 것은 바람직 하지 않음..) 그래서 부모클래스에 매개변수를 받는 생성자를 만들어 줘야 함 부모 클래스 ↔ 일반사원클래스 ↔ 메인클래스 super() : 부모 클래스의 생성자를 호출 public class Employee { private String name; private int age; private String phone; private String empData; private String dept; private boolean marriage; public Employee(){ super(); } // 변수에 저장 public Employee(String name, int age, String phone, String e.. 2023. 11. 29.
상속(Inheritance) 상속 - 클래스를 계층화 하는 것 객체를 수평적인 구조로 설계 시 단점 객체를 수직적인 구조로 설게시 장점 1. 코드의 중복이 발생 2. 새로운 요구사항 발생시 반영이 어려움(유지보수 어려움) 3. 확장성이 떨어짐 1. 코드의 중복 최소화 2. 새로운 요구사항 반영 쉬움 3. 확장성이 좋아진다 UML(Unified Modeling Language) : 통합 모델링 언어, 시스템을 시각화 하거나 시스템의 사양이나 설계를 문서화하기 위한 표준 표현 방법 사원의 일반 정보 저장 클래스 //사원 public class Employee { protected String name; protected int age; protected String phone; protected String empData; protec.. 2023. 11. 29.
class, Object, Instance의 상호관계 3개 모두 비슷한 개념으로, 모두 객체를 나타내는 용어 class - 객체를 모델링 하는 도구(설계도) Object - 클래스를 통해서 선언되는 변수 Instance - 객체생성에 의해 메모리(Heap Memory)에 만들어진 객체 public class ClassDbIN { public static void main(String[] args) { Student st1; Student st2; Student st3; st1 = new Student("na","a",12,"32",12,"010"); st2 = new Student("nada","d",32,"30",32,"011"); st3 = new Student("naa","c",52,"31",14,"012"); System.out.println(st1.. 2023. 11. 29.