일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 모두의연구소
- #패스트캠퍼스 #내일배움카드 #국비지원 #K디지털기초역량훈련 #바이트디그리 #자바인강
- 모두의 연구소 # 오준석의생존코딩# 오름캠프
- Tag #패스트캠퍼스 #내일배움카드 #국비지원 #K디지털기초역량훈련 #바이트디그리 #자바인강
- 패스트 캠퍼스
- 모두연구소
- ㅇ
- 모두의연구소 오준석생존코딩 오름캠프
- 오준석의생존코딩
- 오준석의 생존코딩
- 생존코딩
- 오름캠프
- 오존석의 생존코딩
- 플러터
- 오름캠프플러터
- Today
- Total
꾸준히 하고싶은 개발자
9일차 인스턴스 본문
인스턴스
object :최상위 객체 인 오브젝트는 모든 클래스를 상속 받는다.
계층 확인하기
toString()
오버라이드(재정의 )하여 원하는 결과를 얻도록 수정할 수 있다
재정의 하기 전에 instance of 나온다.
Hero 객체 데이터를 toString() 오버라이드 해서 덮어씌우면 hero 데이터가 나온다.
object Vs dynmaic
다이나믹 과 object 차이 런타임에 코드가 실행중에 결정된다.
오브젝트는 컴파일 될떄 코드 작성 될떄 결정된다
연산자 재정의
연산자 재정의 해서 내마음대로 재정의 하겠다.
최상위 객체 (object) 안에 == opeator 가 있다.
command +N == () and hashcode 원하는 name 선택하면 나온다.
셋을 재정의 이름이 같으면 같은 결로 하겠 다 identical :동일 한지 확인
객체 주소 같은지 런타임타입이 히어로 면 나이름과 상대방이름 같은지 비교 하는 코드
set map
set map 데이터 확인 속도 빠르다 리스트는 입력 된 순서대로 되기때문에
1. 모든 object 속한 객체는 다 다르게 메모리 (해시값)을 주어진다.
2.같은 객체 는 같은 메모리주소(해시값을 )가진다.
set 검색이 빠르다 hash code object 모든객체 hash 코드를 가진다 .
hash code(해쉬코드
다트는 메모리 주소 을 알수 없다 다 실제 는 다르지만 hashcode 메모리 주소다 라고 보자
object → hashcode를 가진다. 숫자마다 해쉬코드값이 다 다르다
같은 해쉬코드를 호출 하면 다시 재정의 한다.
set는 내부적으로해쉬코드를 비교한다
리스트 순서대로 무조건 동일하다 빠르다 hashcode 테이블 안에 저장해놓고 데이터 빠르게 반환한다.
⇒ int로 한다
동등성 비교
같은지 비교 코드
정렬 하기 sort
sort ()정렬 오름 차순 과 내림 차순으로 정렬한다.
재정의 해서 내가 원하는 규칙으로 정렬하겠다 .
void main() {
//정렬 솔트 sort()
// 해당하는 리스트 선언
final List<int> nums = [3, 1, 6, 7, 8, 3, 4];
// 오름차순
nums.sort((c, d) => c.compareTo(d));
// 내림차순
//nums.sort((a,b)=> -a.compareTo(b));
// sort 정렬 하지 않으면 이 규칙 정해서 해야한다 쉽게 메소드 쓰자
// nums.sort((c, d) {
// if (c > d) {
// return 1;
// } else if (d > c) {
// return -1;
// } else {
// return 0;
// }
// });
// 출력하기
print(nums);
//글자 정렬하기
final List<String> books = [
'오준석의 플러터 생존 코딩',
'오준석의 안드로이드 생존코딩 : 코틀린 편 ',
'코딩 책 ',
];
// 정렬 하기
books.sort();
print(books);
}
// 클래스 학생 생성
class Student implements Comparable<Student> {
String name;
String classRoom;
int age;
// 생성자
Student({
required this.name,
required this.classRoom,
required this.age,
});
// toString 맨마지막에 쓰자
@override
String toString() {
return 'Student{classRoom: $classRoom}';
}
// 클래스룸 순으로 정렬
@override
int compareTo(Student other) {
final classEqual = classRoom.compareTo(other.classRoom);
if (classEqual == 0) {
return -age.compareTo(other.age);
}
return classEqual;
}
}
미흡 한 부분은 나중에 내일 올리겠습니다.
'모두의연구소' 카테고리의 다른 글
10일 String (1) | 2023.12.08 |
---|---|
10일 제네릭 (0) | 2023.12.08 |
8일차 다형성 (1) | 2023.12.06 |
7일차 추상클래스와 인터페이스 (1) | 2023.12.05 |
7일차 상속 (inheritance) (2) | 2023.12.05 |