클래스의 있는 변수를 사용하기 위해서는 일반적으로 instance를 생성하고 . 연산자를 통해 접근하였다. void main(){ new Colors().red; // red 변수에만 접근했어도 메모리에는 Colors가 가지고 있는 다른 색상도 차지하게 됨 new Colors().blue; // 또다른 인스탠스를 만들어서 메모리를 또 차지하게 됨 } class Colors { int red = 0; int blue = 1; //... 무시히 많은 색상이 있음 } 그래서 static 전역변수를 통해 class 라는 걸 이용해 한 곳으로 묶어줄 수 있다. void main(){ new Colors().red; // red 변수에만 접근했어도 메모리에는 Colors가 가지고 있는 다른 색상도 차지하게 됨 ne..
생성자는 클래스의 이름과 동일한 이름을 가진 특별한 메서드입니다. 이 메서드는 객체가 생성될 때 한 번만 호출되며, 객체의 초기 상태를 설정하는 데 사용됩니다. 이러한 초기화 작업에는 주로 멤버 변수의 초기값을 설정하는 것이 포함됩니다. 1. class 명과 같아야 한다. 2. 반환 타입을 적을 수 없다 -> 해당 인스턴스 반환이 고정되어 있이 때문 3. 반환 할 수 없다, 즉 return 이 없다. class Point { double x, y; // 생성자 Point(this.x, this.y); } void main() { var p = Point(2, 3); print('The point is at (${p.x}, ${p.y})'); } 객체 지향 프로그래밍 언어에서 this 키워드는 현재 객체,..
원시값(Primitive Value): 원시값은 가장 기본적인 형태의 데이터를 나타냅니다. Dart 언어에서는 bool, num, int, double, String 등의 데이터 타입이 원시 타입에 속합니다. 원시값은 불변성을 가지며, 해당 값 자체가 변수에 직접 저장됩니다. int a = 10; int b = a; b = 20; print(a); // 10 print(b); // 20 참조값(Reference Value): 참조값은 메모리에 위치한 객체나 배열과 같은 복합적인 데이터 구조를 가리킵니다. 참조 타입의 변수는 데이터 자체를 직접 저장하는 대신, 데이터가 저장된 메모리 위치를 참조(가리킴)합니다. 이러한 이유로, 참조 타입의 변수를 다른 변수에 할당하면, 원본 데이터를 가리키는 참조가 복사되..
콜백 함수는 한 함수가 다른 함수를 인수로 받아 실행하는 경우에 사용됩니다. Dart에서도 이와 같이 콜백 함수를 사용할 수 있습니다. void performOperation(int a, int b, Function operation) { print('The result is: ${operation(a, b)}'); } //int a, b, Function operation 을 입력 받아 print하는 함수 선언 int add(int a, int b) { return a + b; } int subtract(int a, int b) { return a - b; } void main() { performOperation(10, 5, add); // Outputs: The result is: 15 perfor..
연산자는 값을 비교하거나, 결합하거나, 빼거나, 증가시키거나 감소시키는 등의 작업을 수행합니다. 다음은 Dart에서 사용되는 몇 가지 주요 연산자의 종류와 사용 방법입니다: 1. 산술 연산자 : +, - , *, / , % //입력이 2개 1+1; //2; 더하기연산자 1-1; //0; 빼기연산자 2*4; //8; 곱하기연산자 5/2; //2.5; 실수몫연산자 5~/2; //2; 정수몫연산자 5%2; //1; //나머지연산자 int a=0; int b=3; a-b; //-3 2. 증감 연산자 : ++, -- int a = 10; a++; // a becomes 11 a--; // a becomes 10 again 3. 비교 연산자(bool을 반환한다) : ==, !=, >, =, b); // false ..
Null safety는 Dart 2.12 버전부터 도입된 기능으로, 이는 코드에서 null 값이 뜻밖의 방식으로 작동하지 않도록 도와주는 기능이다. Null safety를 사용하면 코드에서 null 값이 발생할 수 있는 상황을 명확하게 표시하고, 컴파일러가 이를 감지하게 된다. Dart에서 null safety를 사용하면 다음과 같은 이점이 있다: 코드의 안정성 향상: Null safety는 코드에서 null 값이 발생할 수 있는 잠재적인 문제를 미리 확인하고 수정할 수 있게 해줍니다. 이로 인해 실행 시간 중에 발생할 수 있는 오류를 줄일 수 있습니다. 코드의 가독성 향상: Null safety를 사용하면 변수가 null이 될 수 있는지 여부를 명시적으로 표현할 수 있습니다. 이는 코드를 읽는 사람이 ..
함수를 사용하는 이유 Dart 언어에서 함수는 특정 작업을 수행하는 코드 블록을 의미. 함수를 정의(선언)하고 나면, 이를 호출하여 해당 작업을 재사용하거나 여러 번 반복할 수 있습니다. 이는 코드의 중복을 줄이고, 코드의 구조화와 가독성을 높이며, 코드의 유지 관리를 쉽게 만드는 역할을 합니다. 함수는 입력 (인수 또는 매개변수라고도 함)을 받아 처리하고, 결과 (반환값)을 출력할 수 있습니다. 함수의 선언(정의) 방법 함수는 '반드시 공식을 만들어야 사용 할 수 있다' - 선언 : 공식을 만드는 것 -선언방법 : 공식의 결과타입 + 공식의 이름(매개변수){...절차(매개변수를 포함하여 작성함)} return_type functionName(parameters) { // code to be execut..
변수란 ? 변수는 데이터를 저장하기 위한 메모리 공간이다. 변수만들기 변수를 만드는 방법은 다음과 같습니다: 타입(담을 값의 종류) + 공간의 이름(변수명) = 값(공간에 담을 값); 작성 규칙 [Dart를 타입 시스템을 적용해서 정적 언어처럼 사용할 것입니다.] = -> 대입 연산자 void main(){ //Dart는 시작점이 필요함 int value = 123; // 변수를 만든 것(공간을 만듦) // *[초기화]* / 선언 int v; // 변수 v 를 선언했다. -> 공간 만들었다. String a; //일단 타입이 적힌채로 만들어져 있어야 함 //a; // 그 공간을 사용하겠다. //String a; // 중복해서 사용 불가능 - 기준 : 이름 //int a; // 사용불가 // {} 안에서 ..