본문 바로가기

전체 글

(53)
Day 7. 과제 즐거운 자바 15 ~ 18 강 15강 Object와 String 클래스 Object클래스의 기본 메소드에는 자주 쓰이는 대표 3가지 메소드(1.toString() 2.equals() 3.hashCode() ) 가 있다. 이들을 자주 쓰는 이유는 기준을 정하는 메소드 이기 때문이다. 같은지 다른지를 알기위해서는 기준이 필요하기 때문이다. 이들은 모든 클래스의 1대 조상인 Object의 메소드로서 Overriding을 해서 쓴다. 1.toString() 메소드는 말 그대로 객체가 가지고 있는 값을 문자열로 바꿔서 변환해준다.2.equals() 메소드는 같은 문자열인지 같은 값인지를 비교해주는 메소드이다. ==이 같은 객체를 참조하는지를 알려주는 것과 비슷하면서 다르다.3.hashCode() 메소드는 hash..
Day 6. Java 로또 프로그램(객체지향) Java 로또 프로그램(객체지향)이번에는 지난 수업에 List를 이용해서 짜보았던 로또 프로그램을 객체 지향적으로 다시 짜보았다. 시나리오는 LottoBall클래스에서 공을 하나씩 만들어주고, LottoMachine클래스에서 setLottoballs 매소드를 이용해서 가져와서 mix를 이용해서 섞어주고 getLottoballs를 이용해서 6개의 공을 가져오는 것이다. 바로 밑에 올리는 코드는 스스로 생각해 작성한 프로그램이다. package my.examples.javaexam.lotto; public class LottoBall { private int num; public LottoBall(int num){ this.num = num; } //getNumber(); -> getter메소드 //numb..
Day 6. file, folder 관계와 컴포시트 패턴 file, folder 관계와 컴포시트 패턴(Composite pattern)? 파일들을 모아놓은 디렉토리가 폴더다. 파일은 이름을 정하거나 수정할 수 있어야 하고, 크기를 입력받고 불러올 수 있어야한다. 폴더는 파일들을 추가하거나, 폴더 안에 폴더를 추가할 수 있다. 또 폴더의 크기를 불러오거나, 파일 삭제, 폴더 삭제 등의 기능이있다. 이렇게 파일과 폴더의 관계를 컴포시트 패턴(compostite pattern)이라고 한다. 단일 객체(Single Instance)든 객체들의 집합(Group of Instances)든 같은 방법으로 취급하는 것이다. 다시 말해, 객체들과 객체들 간의 집합 처리 방법의 차이가 없을 경우 사용하면 된다. 여기서 컴포시트의 의미는 일부 또는 그룹을 표현하는 객체들을 트리 ..
Day 5. Collection framework(자료구조) Collection framework(자료구조) Collection : 중복 O 순서 X Iterator : 꺼내는 인터페이스List : 중복 O 순서 OSet : 중복 X 순서 XMap : key, value 값 import java.util.HashSet; import java.util.Iterator; import java.util.Set; //단축키! import는 컴파일러한테 어디 패키지에 있는지 알려주는 것 java.lang은 import필요없다. public class CollectionTest01 { public static void main(String[] args){ Set set = new HashSet(); boolean flag = false; flag = set.add("hell..
Day 4. 과제 정적 멤버와 static? 정적(static)은 '고정된'이란 의미를 가지고 있다. 정적 멤버는 클래스에 고정된 멤버로서 객체를 생성하지 않고 사용할 수 있는 필드와 메소드를 말한다. 이들을 각각 정적 필드 , 정적 메소드라고 한다. 객체(인스턴스)에 소속된 멤버가 아니라 클래스에 소속된 멤버이기 때문에 클래스 멤버라고도 한다. 정적 필드와 정적 메소드는 클래스에 고정된 멤버이므로 클래스 로더가 클래스(바이트 코드)를 로딩해서 메소드 메모리 영역에 적재할 때 클래스 별로 관리된다. 따라서 클래스이 로딩이 끝나면 바로 사용할 수 있다. 필드를 선언할 때 인스턴스 필드로 선언할 것인가, 아니면 정적 필드로 선언할 것인가의 판단 기준은 객체마다 가지고 있어야 할 데이터라면 인스턴스 필드로 선언하고, 객체마다 ..
Day 4. 콜바이 레퍼런스 package my.examples.javaexam.practice; public class Box { private Item item; protected void add(Item item){ this.item = item; int tmp; tmp = item.x; this.item.x = item.y; this.item.y = tmp; } protected Item get(){ return item; } }package my.examples.javaexam.practice; public class Item { int x; int y; } package my.examples.javaexam.practice; public class Execute { public static void main(String[..
Day 4. 템플릿 메서드(Template Method) 패턴 템플릿 메서드(Template Method) 패턴?- 한꺼번에 구체 클래스를 표현하지 않고 추상 클래스의 메서드 패턴을 구현해 놓으면 구체 클래스가 상속받아 자신이 필요한 메서드들을 작성해주는 방식. 문방구의 모양자라고 생각해도 편하다. 흐름(로직)을 부모 클래스가 만들고, 자식 클래스에서 구현하는 방식을 말한다. 템플릿 메서드 예제.package my.examples.javaexam.my; public abstract class Action { //추상 메소드 : 메소드를 선언한다. // abstract 리턴타입 메소드명(파라미터들); void init(){ System.out.println("init");} protected abstract void service(); void destroy(){Sy..
Day 3. Maven 이란? Maven 이란? Apache Maven의 사전적 정의는 "Apache Maven은 자바용 프로젝트 관리도구로 Apache Ant의 대안으로 만들어졌다.Apache License로 배포되는 오픈 소스 소프트웨어이다." 이다.필요한 라이브러리를 특정 문서(pom.xml)에 정의해 놓으면 네트워크를 통해서 라이브러리들을 자동으로 받아준다.개발자들이 jar파일을 공유할 필요없이 pom.xml에 필요한 것을 적으면 매우 손쉽게 다운받을 수 있다. ->같이 프로젝트를 할 때 편리 Maven의 장점 1) 라이브러리의 관리를 매우 용이하게 해준다.2) 프로젝트의 작성부터 컴파일, 테스트 등 프로젝트 라이프 사이틀에 포함되는 각 테스트를 지원해준다. Maven의 Life cycle Maven은 프레임워크이기 때문에 동..