본문 바로가기

Java

(25)
제네릭 generic 컴파일시 강한 타입 체크 타입 형변환 코드 불필요 제네릭 타입 Object 필드 모든 값 저장 가능 class NoGeneric { Object[] v; void set(Object[] n) { v = n; } Object[] get() { return v; } void print() { for(Object o : v) { System.out.print(o + " "); } System.out.println(); } } 잘못된 형변시 오류 package chapter14; public class GenericEx { public static void main(String[] args) { NoGeneric nogen = new NoGeneric(); String[] ss = {"홍길동","이순신","김유..
컬렉션 F/W collection 데이터 그룹을 다루고 표현하기 위한 단일화된 아키텍처 여러 데이터들을 표준화된 방식으로 처리하는 기능 제공 효율적으로 데이터(객체) 저장, 처리를 위해 추가, 삭제, 검색을 위한 다양한 클래스와 인터페이스의 모임 인터페이스를 통해 객체 처리방식을 정형화 한것 Collection 인터페이스와 Map 인터페이스로 구분 Collection 인터페이스 List 인터페이스와 Set 인터페이스로 구분 List 인터페이스 데이터 저장 순서 유지(배열과 비슷) 중복저장 가능 주요 구현 클래스 : ArrayList(읽기 많은 경우), Vector(과거버전), LinkedList(추가,삭제 많은 경우) 추가 add(Object), 가져오기 get(index) package chapter13; import java.util..
java api 자바 JDK 설치시 제공하는 API java.lang 패키지 import 없이 사용, 컴파일시 자동 추가됨 Object class 모든 클래스의 최상위 클래스 상속 받지 않은 클래스는 모두 Object 클래스를 상속 받음 기본적으로 11개의 메서드를 가지고 있음 equals() 메서드 주소 체크 값 체크를 위해서는 재정의 해서 사용 package chapter12; public class EqualsEx { public static void main(String[] args) { Obj obj1 = new Obj(100); Obj obj2 = new Obj(100); if (obj1 == obj2) { System.out.println("obj1 객체와 obj2 객체는 같음"); } else { Syst..
예외처리 exception 오류 : 에러 Error와 예외 Exception 에러 : 프로그램 코드에서 해결 할 수 없는 심각한 오류( JVM 오류, 메모리 부족등) 예외 : 프로그램 코드에 의해 처리할 수 있는 오류 예외 클래스 Exception 이미지참조:https://ccm3.net/archives/20672 예외 처리 try~catch(Exception) / by zero 오류 발생 class ExceptionEx02 { public static void main(String args[]) { int number = 100; int result = 0; for(int i=0; i < 10; i++) { result = number / (int)(Math.random() * 10); // 7번째 라인 System.out.pr..
인터페이스 interface 프로그램과 프로그램을 중간에서 연결해 줌 UI (User Interface) : 사용자와 프로그램과 연결(저장 버튼 클릭 -> 저장 실행) API (Application Programming Interface) : 작업 프로그램과 제공 프로그램 연결 규약 Web API : 웹을 통해 연결(지도, 주소 찾기, 위경도 찾기 등...) 자바에서 인터페이스 추상클래스가 미완의 클래스라면 인터페이스는 기본클래스 인터페이스는 클래스 설계용으로 많이 사용 상속은 수직 구조 설계, 인터페이스는 수평 구조 설계 클래스 설계를 인터페이스로 하면 설계된 메서드의 구현을 강제 할 수있음 오직 추상메서드와 상수만을 멤버로 가짐 class 키워드 대신 interface 사용 인터페이스에 있는 추상메서드를 다 구현하지 않으면 추상..
상속 Inheritance 클래스의 수직 구조 설계 extends 예약어 사용 부모 클래스를 자식 클래스가 상속받으면 부모 클래스의 변수와 메서드가 상속됨 부모 클래스의 변수와 메서드를 자신의 것처럼 사용 가능 부모클래스는 슈퍼(super), 상위, 베이스 클래스 라고도 부름 자식클래스는 서브, 하위, 파생 클래스 라고도 부름 부모클래스 package chapter08; public class Phone { String name; String color; String company; void call() { System.out.println("전화를 건다"); } void receive() { System.out.println("전화를 받다"); } } 자식클래스 package chapter08; public class Smart..
클래스 class 자바에서 생성되는 프로그램의 최소 단위 기능(메소드)과 속성(멤버변수)로 구성 사용자 정의 자료타입 데이터와 기능을 함께 저장할 수 있는 자료구조 객체 지향 프로그래밍 OOP( Object Oriented Programming) 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것 객체 지향 프로그래밍의 특징 추상화 추상화의 사전적 의미는 특정한 개별 사물과 관련되지 않은 공통된 속성이나 관계 등을 뽑아내는 것 공통의 속성이나 기능을 묶어 이름을 붙이는 것으로 객체 지향적 관점에서 클래스를 정의하는 것 예를 들어, 토끼, 고양이, 사자, 치타가 있을 때 이것들을 각각의 객체라 하며 이 객체들을 하나로 묶으려 할 때 동물 또는 생물이..
배열 array 같은 타입의 변수들로 이루어진 유한 집합으로 정의 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것 배열 요소(element) : 배열을 구성하는 각각의 값 인덱스(index): 배열에서의 위치를 가리키는 숫자(int) 배열의 선언 타입[ ] 변수명; // int [ ] score; 타입 변수명[ ]; // int score[ ]; package chapter06; public class ArrEx { public static void main(String[] args) { int[] arrInt; int arrInt2[]; double[] arrDouble; String[] arrString; } } 배열 생성 타입[] 변수명; // 배열을 다루기 위한 참조변수 선언 변수이름 = new 타입[길이];..
함수 - 메서드 function 함수(function)란 하나의 특별한 목적의 작업을 수행하기 위해 독립적으로 설계된 코드의 집합으로 그 처리 로직을 재실행 , 재사용, 반복사용 가능 이미지참조: https://evan-moon.github.io/2019/12/29/about-pure-functions/ 메서드(method) 또는 멤버 함수(member function) 객체지향 프로그래밍에서의 함수 자바의 클래스 = 멤버변수 + 멤버메서드로 구성 메서드(함수) 중요 구성요소: 인자(argument)와 리턴 값 함수 사용(호출)시 무엇을 주고(전달) 무엇을 받을지(리턴)를 생각하는 것이 중요 형식 접근자 리턴데이터타입 함수명(인자 x) { 처리 로직 결과 리턴 } public int fn(int x) { int y = x * x; re..
제어문 - 반복문 loop 제어문 프로그램 실행순서를 제어하는 구문 변수연산을 특정 조건에서만 처리하거나 특정 횟수만큼 처리 반복문 무엇이 반복되는 지, 몇 번 반복되는지를 찾는 것이 중요 조건식이 참(true)인 경우 실행블럭을 반복 처리 조건식이 계속 참(true)이면 무한 반복 처리 종류 : for, while, do~while for 문 형식 for(초기화식; 조건식; 증감식) { // 조건식이 참인경우 실행블럭 }기본 반복문 package chapter05; public class ForEx { public static void main(String[] args) { // 반복 출력 오름차순 ASC : 1~ 10 for (int i=1; i0; i--) { System.out.println("i = "+i); } } } ..