100일 챌린지/빅데이터기반 인공지능 융합 서비스 개발자 93

Day 13 - UI 구현하기

시스템 스크린 사이즈 갖고오기java.awt.Toolkit kit = Toolkit.getDefaultToolkit();Dimension screen = kit.getScreenSize();int w, h;w = screen.width/2;h = screen.height/2;Dimension app = new Dimension(500, 800);setSize(app);setResizable(false);setLocation(w-app.width/2, h-app.height/2);setVisible(true); Event 만들기윈도우 리스너 가져오기public class Ex02 extends Frame implements WindowListener{ public Ex02() { add..

Day12 - 내부 클래스, GUI

내부 클래스클래스 내부에 존재하는 클래스를 내부 클래스라 부른다.jdk 1.4 이전에는 상속 대신에 내부 클래스를 많이 썼다.최근 국내에서는 절차지향적인 코딩이라는 인식이 있어 선호하지 않는 편이다.내부 클래스를 만들면 외부클래스$내부클래스.class로 컴파일된다.anonymous를 사용할때 잘 활용된다.안드로이드는 모든것이 내부 클래스로 이루어져 있다.다만 클래스 소스를 찾기 힘들어 국내 협업에서는 잘 사용하지 않는다.내부 클래스의 4가지 형식1. Static 클래스 (static inner class)class Outter02{ static int su1 = 1111; int su2 = 2222; // 생성자 public Outter02() { } static voi..

Day 11 - generic, 순서가 없는 자료구조(Enumeration),그리고 Map

GenericJDK 1.5 버전부터 나온 문법문법적으로 자료형을 제약, 개념적으로 확장한다.캐스팅이 필요하지 않아 캐스팅 미스매치로 일어나는 Exception오류를 피할 수 있다.// 캐스팅이 필요한 리스트ArrayList list1 = new ArrayList();list1.add("문자열");System.out.println(list1.get(0));String msg1 = (String) list1.get(0);System.out.println(msg1);// 캐스팅이 필요하지 않은 general 리스트 ArrayList list2 = new ArrayList();list2.add("문자열");System.out.println(list2.get(0));String msg2 = list2.get(0)..

Day10 - 동적할당, 자료 구조, List와 Set

Java의 Collection FrameworkJava에 추가된 Collection Framework를 사용하기 위해선 Interface를 이용한다.동적할당객체를 새로 생성해 그 객체 안에 이전의 객체를 레퍼런스하는것을 반복한다.배열의 복사와 달리 객체생성을 통한 동적할당은 낭비하는 메모리가 없어 성능이 더 뛰어나다.다만 읽어들일때에는 배열보다 성능이 떨어진다.class Node{ int su; Node nxt; }class Linked{ Node node; int cnt; void add(int su) { node.su = su; Node temp2 = node; // 1. Node node = new Node(); ..

Day09 - Wrapper 클래스

Wrapper 클래스기본 타입에 해당되는 Wrapper 클래스가 있다.Wrapper 클래스는 Object 클래스와 객체의 중간 매개체 연결을 한다.Object는 모든 참조변수를 받아낼 수 있기 때문에=> 다양한 타입을 파라미터로 받기가 가능해진다.기본자료형(int, float, String 등)이 부모타입(Object)으로 캐스팅이 가능해진다.기본자료형의 특성과 기능의 표현이 가능해진다. (Integet.parseInt()를 통한 인티저 사용 가능)public class Ex01 { public static void main(String[] args) { func01(new Ex01()); func01(1111); func01(3.14); func0..

Day 08 - 인터페이스와 java.lang 클래스

Interface의 상속Java는 다중상속이 허용되지 않기 때문에 Interface가 발달되어 있다.public class Ex05 extends Object implements Inter01{ public static void main(String[] args) { Ex05 me = new Ex05(); Object me1 = new Ex05(); Inter01 me2 = new Ex05();implements를 사용한 상속interface Inter01{ public static final int su = 1111; int su2 = 2222;// int su3; // 초기화를 하지 않으면 선언 불가능 (final이 숨겨져있기 때문에) public a..

Day 07 - 상속

상속class 클래스명 extends 부모클래스{};부모의 기능을 물려받는 것 - 반복되는 기능을 사용하기 위해서자바는 단일상속이라 다중상속을 지원하지 않음.자바의 모든 클래스는 상속을 받는다.extends 부모가 코드명세가 없을시 해당 클래스는 java.lang.Object 클래스를 상속받게 된다.public class Ex01은 사실 public class Ex01 extends Object이다.상속은 반드시 부모에서 자식으로 상속된다.자식이 가지고 있는기능은 부모가 사용하지 못한다.자식은 부모가 가지고 있는 메소드를 override 할 수 있다.class Parent{ public int money = 1000; public void how() { System.out.prin..

Day 06 - break, return, continue 그리고 배열 복사와 String의 기능들

break, return과 continuebreak, return과 continue는 기본적으로 (표면상)같은 동작을 한다.public static void func01() { for(int i = 0; i 5) break; System.out.println("func01-" + i); }}public static void func02() { for(int i = 0; i 5) return; System.out.println("func02-" + i); }}public static void func03() { for(int i = 0; i 5) continue; System.out.println("func03-" + i); }}b..

Day05 - 배열과 문자열

배열자료형[]배열은 동일한 자료형의 묶음으로밖에 사용이 안 된다.자료형 선언과 초기화자료형[] 변수형 = new 자료형[갯수]int[] a = new int[5];자료형 호출하기변수명[index]index0부터 시작하고, 갯수-1개 까지 존재한다.연속되는 숫자이다.범위를 넘어설 경우 exception이 발생한다.int[] a = new int[5];a[0] = 1;a[1] = 3;a[2] = 5;a[3] = 7;a[4] = 9;for(int i = 0; i 배열의 길이 호출하기변수명.length;byte 배열 만들기byte[] byt = new byte[3];byt[0] = 65;byt[1] = 66;byt[2] = 67;String msg4 = new String(byt);System.out.print..

Day04 - Package와 생성자 사용하기

클래스소스 코드의 이름이 달라도 클래스의 명이 같게 되면 컴파일 시 클래스 파일이 덮어쓰게 되거나 에러가 나올 수 있다.같은 클래스명을 사용할 수 package를 사용해 디렉토리를 구분짓는다.패키지로 디렉토리를 구분지어도 컴파일 후 클래스 파일을 실행시킬 수 없는것을 확인 할 수 있다.-> 이럴땐 파일이 어디 있는지 명시해 주어야 한다.패키지란클래스들이 위치하는 경로를 지정하는 것.패키지와 메모리클래스 명이 같은 클래스를 특정할 때는 숨겨져 있는 패키지 이름을 명시하면 된다.public class Ex03 { public static void main(String[] args) { double customRand = Math.random(); // 사용자가 만든 random 클래스 ..