Wanna be a Programmer/Java Programming 썸네일형 리스트형 Nested class Nested Class 란? class 내부 또는 메소드에 class를 정의할 수 있는데, 이를 nested(중첩) class라고 한다. 왜 Nested Class를 사용하는가? - Logical group of classesclass A가 Class B에서만 사용될 경우, A를 B에 내장하여 유지하는 것이 바람직하다.- Increased encapsulation두개의 class A와 B에 대하여, A가 B의 private 멤버(field, method)에 접근할 필요가 있을경우, A를 B의 안에 만들면 B의 멤버들을 private으로 만들면서 A에서 접근할 수있게 된다. 또한, A 자신은 캡슐화상태로 외부로부터 보호된다.- More readable, Maintainable codeclass A가 Cla.. 더보기 Java Programming - String, StringBuffer, StringBuilder, DTO 문자열 – String, StringBuffer, StringBuilder ① String 객체는 한번 객체가 만들어지면 그 값은 절대 불변(변경 될 때마다 객체가 새로 만들어짐)↳ 값 : “값”, 객체 : String s = “ABC”; String s = new String(“ABC”);- starsWith(“ab”) -> 문자열이 ab로 시작하는지 true or false 반환- endsWith(“ef”) -> 문자열이 ef로 끝나는지 true or false 반환- indexOf(“a”) -> 특정 문자나 문자열이 몇 번째에 위치하는지 조회, int형 index로 반환- lastIndexOf(“abc”) -> 특정 문자나 문자열이 어디에 위치하는지 뒤에서부터 조회- indexOf(“a”, 2) -.. 더보기 Java Programming - Generic(제네릭), Object, Wrapper Class Generic(제너릭) - Class에서 사용할 type을 class 작성 시 지정하는 것이 아니라 사용시점에 지정하는 것- 구문 : Class 선언 public class ClassName { public void go(E e) { } }ex) ClassName c1 = new ClassName (); ClassName c2 = new ClassName ();※ Generic 파라미터는 static 메소드에서는 사용할 수 없다. Object- Java.lang.Object : 모든 class의 최상위 → 모든 객체의 type이 될 수 있다.- 메소드* public String toString() : 객체(object)의 string으로 반환* public boolean equals(Object obj).. 더보기 Java Programming - Map, Iterator Map - Key 값 : 중복을 허용하지 않는다. 같은 Key-object 값을 추가할 경우에 → Replace 처리- Value 값 : 중복을 허용한다. index를 통해 값을 구분하는 리스트처럼 map은 Key값을 통해 구분을 하기 때문에 Value가 중복이 되어도 상관없다.- 메소드* 추가, 변경 : put(Object k, Object v)* 조회 : get(Object k) : Object(Value) → object k를 조회하면 value를 반환* 삭제 : remove(Object k) : Object (Value) → 삭제한 object k 의 value를 반환* Key값의 존재유무 : containsKey(Object k) : boolean Value값의 존재유무 : containsVal.. 더보기 Java Programming - Collection API, 배열 vs 컬렉션 Collection API - Data를 모아 관리하는 객체, 모으는 방법에 따라 여러 class로 제공, Object type의 배열- Collection에 정의된 메소드추가 : add(Object) - boolean 삭제 : remove(Object) - boolean조회 : 조회 메소드 X → iterator 객체리턴size() : 관리하는 객체의 수 – intcontains(Object) - boolean(인수로 받은 객체가 Collection에 있는지 조회clear() - collection내의 모든 객체 삭제- List → List는 중간 idx에 null이 있으면 안 된다.add(int idx(객체를 삽입할 인덱스), Object) - 삽입set(int idx, Object) - 교체 ex).. 더보기 Java Programming - Abstract vs Interface Abstract - instance 메소드, class에 사용되는 제한자의미 : 추상적이다 → 구현이 안되었다.- 메소드 : 메소드 구현 없이 선언만한 메소드 ex) public abstract void go(); {}이 붙으면 안된다.→ 하위 class에서의 overriding을 강제한다. 하위 class들이 구현한 메소드의 template(틀) 역할- Class : 객체 생성을 못하는 class ex) public abstract class Animal { 구현 }⑴ abstract 메소드를 가지는 class는 반드시 abstract class가 되야한다. 부모 class에 정의된 abstract 메소드를 overriding 안하면 abstract class가 되어야한다.⑵ abstract class.. 더보기 Java Programming - 의존관계(Dependency), Final Final : 변수, 메소드(instance), class - 변경이 되지 않는다.- 메소드 - 하위 클래스에서 overriding을 할 수 없다.- class - 하위 클래스를 가질 수 없다.- 변수 - 변수의 상수화 → 한 번 값이 대입되면 다른 값을 대입할 수 없다. ⑴ Instance 변수 - 묵시적인 초기화가 없다. → 값 대입 : 명시적 대입(명시적 초기화), 생성자에서 대입⑵ static 변수 – 선언시 값 대입 ex) public static final ⑶ 지역변수(Local Variable) - 사용 전까지 대입- final 변수의 이름 관례 : 대문자 ex) TAX_RATE 의존관계(Dependency) - 하나의 Class가 다른 Class를 사용하는 관계- Has a 관계 : Att.. 더보기 Java Programming - 다형성(Polymorphism), Heterogeneous Collection 다형성(Polymorphism) - 부모Type의 변수에 자식Type 객체를 대입 primitive typeshort s;byte b;int i;long l;l = s; l = b;l = i;l = 30l;-> 다형성은 객체에 관한 것이지만 long type의 l에 다른 type인 short, byte, int의 데이터를 대입할 수 있다는 개념이 다형성이다. But, primitive type에서는 다형성이라고 하지 않는다. Animal eat() Dog Catcry()Animal a = new Animal();a = new dog();a = new cat();a = new Human();Animal c = new Cat();c.eat();c.cry(); →컴파일 에러(type check) 변경 Anim.. 더보기 Java Programming - 상속, 메소드 오버라이딩, super 상속(Inheritance)- 기존의 class에 정의된 변수나 메소드를 재사용하여 새로운 class를 만드는 것- Java는 class간의 상속에서는 단일상속을 지원, 다른 객체지향언어는 주로 다중상속을 지원- 상속의 사용 ex) public class Animal { } public class Human extends Animal : [제한자]class 식별자 extends 부모class이름 { }- 상위 클래스의 객체와 하위 클래스의 객체는 동일한 곳에 생성되는 것이 아니라 상위클래스 객체 따로 하위클래스 객체 따로 생성되며 하위 클래스는 상위 클래스의 속성과 메소드를 상속 받을 수 있도록 링크가 되어있어 상위 클래스의 속성과 메소드를 호출 할 수 있다.- super는 상위 클래스의 생성자 호출 또.. 더보기 Java Programming - Static vs Instance, 접근제한자 Instance vs Static variable, method - Instance variable의 경우 각 객체마다 instance variable이 생성된다.- static 변수는 하나이므로 불변의 값 혹은 여러 곳에 공통적으로 쓰이는 값(파이), 고정적으로 할당을 해놓고 바뀌지 않는 변수는 static으로 작성한다. static – 메소드, attribute(local 변수 X), nested class(class 안에 선언된 class)에 사용되는 제한자(modifier) ex) static class A { static class B { } }① class의 멤버가 된다.(객체의 것이 아니라 class의 것이다)② 호출 : class이름.멤버 ex) class A { static int a; .. 더보기 이전 1 2 다음