package generic2; public class Plastic extends Material { public String toString() { return "플라스틱입니다"; } @Override public void doPrinting() { System.out.println("플라스틱으로 만듬 "); } } package generic2; public class Powder extends Material{ public String toString() { return "파우더 입니다."; } @Override public void doPrinting() { System.out.println("파우더로 만듬 "); } } package generic2; public class GenericPri..
전체 글
안녕하세요제네릭 프로그래밍 자바 컬렉션 프레임워크는 자바에서 여러 가지 자료구조와 알고리즘을 구현해 놓은 라이브러리이다. 지금까지 ArrayList를 써봤는데 배열이나LinkedList를 구현해 놓은 종합 라이브러리이다. 제네릭 프로그래밍이 컬렉션 프로그래밍에 다 적용이 되어 있다. C++의 템플릿이랑 비슷한 프로그래밍 방식이다. 변수의 선언이나 메서드의 매개변수를 하나의 참조 자료형이 아닌 여러 자료형을 변환될 수 있도록 프로그래밍하는 방식이다. 실제 사용되는 참조 자료형으로 변환은 컴파일러가 검증하므로 안정적인 프로그래밍 방식이다. 이미지 참조자료형으로 대체될 수 있는 부분을 하나의 문자로 표현한다. 여러 개의 클래스가 쓰일 수 있다. 그 재료에 따라서 재료의 타입을 제네릭(자료형 매개변수)으로 두고 그게 파..
package string; // StringBuilder // append 가 되고 value값이 바뀌고 나서 toString 으로 해서 String값을 얻어온다. public class StringTest2 { public static void main(String[] args) { String java = new String("Java"); String android = new String("android"); StringBuilder buffer = new StringBuilder(java); System.out.println(System.identityHashCode(buffer)); // 연결하기 전의 메모리값 buffer.append("adnroid"); System.out.println(S..
String , Wrapper 클래스 String 클래스 String 클래스 선언하기 String str2 = “abc”; String str3 = “abc”; 상수풀에 있는 문자열을 공유하게 된다. String 클래스는 한번 선언되거나 생성된 문자열은 변경할수없다. String 클래스의 concat() 메소드 혹은 “+” 를 이용하여 String 을 연결하는 경우 새로운 메모리를 가리키게 된다. 안쓰이는것은 가비지컬렉터 즉, 한번 생성된 문자열은 불변이다. package string; public class StringTest { public static void main(String[] args) { String str1 = new String("abc"); String str2 = new Strin..
재정의시 public boolean equals(Object obj) { if(obj instanceof Date2) { Date2 dtd = (Date2)obj; if(this.day == dtd.day && this.month == dtd.month && this.year == dtd.year) { return true; } } return false; } if(상위 클래스 instanceof 하위클래스 ) { // 상속 타입에 속하는지 확인할때는 instanceof 를 확인한다. // 상위클래스를 다운캐스팅 한다음 하위클래스의 객체를 생성하여 if절을 생성 하여 비교 한다. }
package classex2; class Date { int month; int year; int day; public Date(int month, int year, int day) { this.month = month; this.year = year; this.day = day; } @Override public boolean equals(Object obj) { if(obj instanceof Date) { //(상위)부모객체가(하위)자식클래스 타입 이면 ? Date dtd = (Date)obj; // 다운캐스팅 if(this.month == dtd.month && this.day == dtd.day && this.year == dtd.year) { return true; } else return ..
Person 클래스 생성 package classex; public class Person { private String name; private int age; public Person() { } public Person(String name) { this.name = name; } public Person(String name , int age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { t..
package object; class Student2 implements Cloneable { public String name; public int num; public Student2(){ } public Student2(String name , int num) { this.name = name; this.num = num; } @Override protected Object clone() throws CloneNotSupportedException { return super.clone(); } @Override public String toString() { return name +" 이고 " + num; } } public class ToStringTest { public static void ..