본문 바로가기

JAVA/되새김질

ArrayList import 필요 - import java.util.ArrayList; 객체생성 - ArrayList arrayList = new ArrayList(); ArrayList 크기는 동적으로 변경되기 때문에 크기설정이 필요없음 값 추가 - .add("##"); ##이 마지막 배열에 추가됨. - .add(1, "@@"); 이 index[1]에 끼어들어감. 값 제거 - .remove(0); index[0]이 지워지면서 자동으로 1번이 0번째 index가 됨. 값 찾기 - .get(i); index[i] 의 값을 볼 수 있다. 값 수정 - .set(1, 77779); index[0] 의 값이 77779로 바뀜. cf) .add(1, "@@"); 이 index[1]에 끼어들어감. 존재확인 - boolean isEm.. 더보기
객체지향 복습(6) ─ 인터페이스 # interface ★ 주로 상속관계에 있어서 연결 역할을 할 때 많이 쓰인다. 2 하위에 있는 메서드는 추상메서드로 자동 선언한다. (abstract 생략가능) 3 상속받을 클래스는 implements로 상속받는다. 4 인터페이스는 1:다 상속이 가능하다. // class 클래스명 extends 상위클래스1, 상위클래스2(x) // class 클래스명 implements 상위인터페이스1, 상위인터페이스2(O) 5 당연히 추상메서드는 하위클래스에서 overriding되어야 한다. ★ 인터페이스는 다른곳에 영향을 끼치지 않음.=> 부분업글가능★ 유연성 탁월 더보기
객체지향 복습(5) ─ 추상메서드 추상메서드에 대한 10줄짜리 8문장 분량의 설명이다. 읽어보면 알겠지만 결국 전부 같은 말임. 같은 말을 돌려서 여러 번 하는 이유. 낯선 개념을 뇌에 때려박아 넣기 위해 추상메서드란? ◆ 추상메서드는 하위클래스에서 재정의 목적으로 만드는 것. => 추상메서드는 하위클래스가 있어야 한다. => 추상메서드는 현재클래스를 상속받는 하위클래스에서 의미가 있고 재정의 된다. ◆ 추상메서드가 한 개 이상 포함된 클래스는 추상클래스로 선언하여야 한다. => 클래스 내에 abstract void 메서드명(); 이 있으면 클래스에도 abstract를 붙여줘야한다. ◆ 추상클래스를 상속한 클래스는 반드시 추상메서드를 구현해야 한다. 종합) 추상 메서드가 있는 순간 추상클래스가 되고, 추상클래스는 반드시 하위클래스가 존재.. 더보기
향상된 for문 Iterator 컬렉션 ArrayList list = new ArrayList(); list.add(new Integer(10)); list.add(new Integer(20)); list.add(new Integer(30)); Iterator it = list.iterator(); 구 반복문 for(;it.hasNext();){ System.out.println(it.next()); } 향상된 for문 for(Integer i : list) System.out.println(i); 출처: https://wedul.site/32 [wedul] 더보기
객체지향 복습(4) ─ 1:다 (Obj vs MultiObj) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 class Mart{ //Product prod; String name; private ArrayList plist; public Mart01(String mname) { this.mname = mname; plist = new ArrayListt(); } public void buy(Product prod) { plist.add(prod); } } Colored by Color Scripter cs Line3 다중의 객체를 받아오기위한 ArrayList 생성. 그 출처는 Product 클래스. Line7 생성자를 통해 초기화 처리. Line10 buy메서드를 통해 Product 객체에 여러 값을 넣을 수 있다. 그리고 그 값들은 ArrayList.. 더보기
메서드 특징!? 아니 내가 몰랐던 것 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 class Product03{ private String name; private int price; private int cnt; public Product03(String name, int price, int cnt) { this.name = name; this.price = price; this.cnt = cnt; } public int buyInfo() { System.out.print(name+"\t"+price+"\t"+cnt+"\t"+(price*cnt)+"\n"); return price*cnt; } } public class A12_ObjVSMultiObj.. 더보기
객체지향 복습(3) ─1:1 (Obj vs Obj) + 객체 사용 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 class Friend99 { String name; String date; Friend99(String name,String date){ this.name=name; this.date=date; } void show() { System.out.println(name+"을 "+date+"에서 만났다."); } } class YoungerTime99 { Friend99 f; String name; YoungerTime99(String name){ this.name=name;.. 더보기
야구 스코어 만들기 @) Playbaseball 생성자를 통해서 team1, team2 팀명 할당 메서드1 : team1이 공격하여 획득한 점수(임의의 0~2) return 팀 총점은 누적처리 메서드2 : team2가 공격하여 획득한 점수(임의의 0~2) return 팀 총점은 누적처리 메서드3 : 팀의 현재 스코어는 출력처리 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 class Playbaseball99 { String team1; String team2; int atk1; int atk2; public Playbaseball99(String team1, String team2) { thi.. 더보기