본문 바로가기

Programming Language22

[국비] Java 내용정리 Day20 Regular Expression Quiz01 - 형식이 맞지 않은 문자열에서 숫자의 가격 형식만 찾아서 순서대로 출력한다. package regex.pattern; import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexQuiz { public static void main(String[] args) { String str = "헠4,500원 힣~ 1,200원엌? 6000원윀 120000원"; String pattern = "\\d원*"; Pattern p = Pattern.compile(pattern); Matcher m = p.matcher(str); while(m.find()) { System.out.pri.. 2021. 12. 4.
[국비] Java 내용정리 Day19 익명객체 구현 클래스가 매번 달라지거나, 한 번만 사용되는 경우 구현 클래스를 생성하지 않고 익명 클래스(이름이 없는 클래스)로 선언할 수 있다. package anonymous.basic; interface Car { public void run(); // 추상 메서드 } class Sonata implements Car { @Override public void run() { System.out.println("소나타가 달립니다."); } } public class Garage { //public Car car = new Sonata(); 일반적인 인터페이스 구현 객체 사용법 public Car car = new Car() { public void run() { System.out.println("익.. 2021. 12. 2.
[국비] Java 내용정리 Day18 음식점 메뉴판 관리 프로그램 package collection.map; import java.util.HashMap; import java.util.Map; import java.util.Scanner; public class FoodManager { public static void main(String[] args) { Map foods = new HashMap(); Scanner sc = new Scanner(System.in); System.out.println("*** 음식점 메뉴판 관리 프로그램 ***"); while (true) { System.out.println("# 1. 메뉴 등록"); System.out.println("# 2. 메뉴 전체보기"); System.out.println(".. 2021. 12. 1.
[국비] Java 내용정리 Day17 package collection.list; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Scanner; public class ListDelete { public static void main(String[] args) { Scanner sc = new Scanner(System.in); List kakao = new ArrayList(); Collections.addAll(kakao, "무지", "네오", "어치피", "라이언", "제이지"); System.out.println("현재 저장된 카카오 친구들: " + kakao); System.out.print("삭제할 친구.. 2021. 11. 29.
[국비] Java 내용정리 Day16 Math 클래스 수학 관련 함수들을 제공하는 클래스다. 모든 메서드는 static으로 구성되어 있다. package api.lang.math; public class MathExample { public static void main(String[] args) { // 올림 int i = (int) Math.ceil(1.1); System.out.println(i); // 내림 double d = Math.floor(1.5); System.out.println(d); // 반올림 double d2 = Math.round(3.141592 * 100) * 0.01; System.out.println(d2); // 제곱 double d3 = Math.pow(3.0, 4.0); System.out.println.. 2021. 11. 28.
[국비] Java 내용정리 Day15 예외를 강제로 발생시키는 키워드 throw 메서드나 생성자 실행 도중에 throw 키워드를 만나면 즉시 throw로 생성한 예외가 발생한다. 예외가 발생되면 실행되던 코드는 즉시 중단되고 예외를 처리할 수 있는 catch문으로 바로 이동하게 된다. 적절히 활용하면 void가 아닌 메서드를 강제로 종료시킬 때 사용된다. 또한, 에러 상황이 아니지만 프로그램 실행에 적절치 못한 상황에서 코드의 흐름을 바꿔 줄 수가 있다. 기존에 정의된 예외 클래스 외에 필요에 따라 개발자가 새로운 예외 클래스를 정의해서 사용할 수 있다. 대부분의 경우 Exception을 상속받아서 클래스를 디자인한다. package exception.throw_; public class ThrowExample { static int cal.. 2021. 11. 25.
[국비] Java 내용정리 Day14 인터페이스 인터페이스는 객체들의 표준 사용방법을 제시한다. 인터페이스는 객체들을 충실하게 추상화, 캡슐화할 수 있게 도와준다. 인터페이스는 선언시 class 자리에 interface라는 키워드를 넣어서 선언한다. 인터페이스에는 인스턴스 필드를 선언할 수 없고, 상수만 선언할 수 있다. static final을 생략해도 자동으로 붙어서 처리된다. 인터페이스에는 추상 메서드, 정적 메서드, 디폴트 메서드(jdk 1.8 이후)를 선언할 수 있다. 인터페이스 자체로는 객체를 생성할 수 없다. 인터페이스에서 명세한 기능을 구체화할 클래스가 필요하며, implements라는 키워드를 사용하여 인터페이스를 명시한다. 인터페이스를 구현한 클래스는 인터페이스의 추상메서드들을 모두 오버라이딩해야 한다. 인터페이스는 클래스.. 2021. 11. 24.
[국비] Java 내용정리 Day13 static static이란 직역을 하면 고정된 이라는 의미를 갖고 있다. 자바에서는 static을 사용 제한자로 이용하며 필드, 메서드에 붙여서 정적 멤버로 만들 때 사용한다. 정적 멤버란 객체에 속한 멤버가 아닌 클래스에 고정된 멤버로서 객체를 생성하지 않고 사용할 수 있는 필드와 메서드를 말한다. 인스턴스 멤버는 객체에 소속된 멤버로서 객체당 각각 다른 값을 가질 수 있지만 정적 멤버는 클래스에 소속된 멤버이기 때문에 객체간 모든 값을 공유하는 공유데이터가 된다. static이 붙은 데이터는 그 static 데이터가 선언된 클래스 이름으로 바로 참조 할 수 있다. static은 객체와 무관한 데이터고, 일반 멤버 변수와 혼동할 가능성이 있기 때문에 주소값으로 접근하지 않는다. 정적 초기화 블록 인스.. 2021. 11. 23.
[국비] Java 내용정리 Day12 다형성(Polymorphism) 다형성이란 객체들이 여러 가지 형태, 즉 타입을 이용할 수 있는 성질을 말한다. 자바는 다형성을 위해 객체들의 부모타입변환을 허용하고 있다. 부모타입에 모든 자식 객체를 대입할 수 있다. 다형성을 이용하면 객체의 부품화를 할 수 있다. 자바에선 하나의 클래스 파일에 여러 개의 클래스를 선언할 수 있고, 밀접한 연관이 있는 클래스를 모아 놓기 위해 사용한다. 파일명과 동일한 클래스가 반드시 존재해야 하고 해당 클래스만 public으로 선언할 수 있다. 다형성이란 자식 객체가 모든 부모의 타입을 가질 수 있다는 것을 의미한다. 부모 타입 변수에 자식 객체의 주소값을 얼마든지 저장할 수 있는 것을 의미한다. 상속관계가 없다면 다형성 적용이 불가능하다. 다형성은 무조건 상속 관계.. 2021. 11. 21.