반응형
- var 타입 변환 불가능
var n = 1;
n = '문자';
- dynamic 타입 변환 가능
dynamic data = 1;
data = '문자';
fianl
final 에는 var을 사용할 수 없다.
다른 자료형 타입에는 사용할 수 있다.
final은 자료형 타입을 선언하지 않아도 된다.
final vs const
공통점
-변하지 않는다.
fianl f =DateTime.now(); //(O)
const c = DataTime.now(); //(X)
차이점
fianl (결정적인)
- fianl은 compile, runtime시점 모두 값을 정의할 수 있다.
- 값이 없는 상태로도 선언이 가능하다.
- 한번 정의되면 변경 불가능
const (끊임없는)
- compile 시점에만 값을 정의할 수 있다.
- 처음부터 값을 선언해야 한다.
제어문
void main(){
int year = 2000;
if(year == 2000){
print('$year입니다');
}
}
함수안에 $기호를 사용해서 변수를 자유롭게 사용할 수 있다.
반복문
for(int i=1; i<10; i++){
}
for(int i in list){
print(i);
}
함수
// 변수명앞에 _(언더바)를 붙이면 private 선언이다.
int _add(int a, int b) {
return a + b;
}
var add2 = (int a, int b) => a + b;
var add3 = (a, b) => {
print(a), print(b),
a+b
};
void main() {
add3(1,2);
>>1
>>2
print(add3(1,2));
>>1
>>2
>>{null,3}
}
forEach 사용방법
void main() {
var list =[1,2,3,4];
list.forEach(print);
}
상속
-두개 이상의 클래스를 상속할수 있다.
extands A with B
일반 클래스를 implements 가능하다.
class Animal{
void sound(){
print('어흥');
}
}
// class Dog extends Animal{}
class Dog implements Animal{
void sound(){
print('멍멍');
}
}
void main(){
Dog d = Dog();
d.sound;
}
getter, setter 생성 방법
class Animal{
String _name;
int _speed;
//자바
// String getName(){
// return _name;
// }
//플러터
//생성자
Animal(this._name, this._speed);
//getter
String get name => _name;
//setter
set name(String name){
_name = name;
}
}
// class Dog extends Animal{}
void main(){
Animal a = new Animal('개',1);
print('${a._name} ${a._speed}');
}
'정리' 카테고리의 다른 글
(플러터) 실로폰 (0) | 2020.02.20 |
---|---|
(flutter) MagicBall 만들기 (0) | 2020.02.19 |
JPA 시작하기 (0) | 2020.02.16 |
[SPRING] AWS에 MAVEN사용해서 배포 - (4) Git clone / Maven Compile, package (0) | 2020.02.13 |
[Spring] 정적 리소스 매핑 (1) | 2020.02.12 |