본문 바로가기
728x90
반응형

Flutter35

[Flutter 17] Dart Mixin과 Java 관계 개념 정리 Java 객체 간의 관계 개념Java는 단일 상속만 허용합니다.(최상위 클래스인 Object를 제외한 모든 클래스는 하나의 부모 클래스만 상속 가능)1. 연관 관계객체들이 서로 연결된 일반적인 관계를 의미합니다.2. 컴포지션 관계 (Composition)정의:부분-전체 관계 중에서 생명주기가 밀접히 연관된 강한 소유 관계입니다.특징:전체 객체가 소멸되면 부분 객체도 함께 소멸됩니다.의존성이 매우 높습니다.예시:자동차(전체)와 엔진(부분) 관계class Engine { final String type; Engine(this.type); void startEngine() { print('${type} 엔진이 시동됩니다.'); }}class Car { final Engine engine; Ca.. 2025. 1. 7.
[Flutter 15] storeApp 만들기1 1. 프로젝트 생성 2. 필요한 이미지 프로젝트 내에 내장하는 방법     3. 초기코드 작성해보기 import 'package:flutter/material.dart';//코드의 시작점void main() { runApp(MyApp());} //end of main 자동정렬 필요 ( ctrl + alt  + l(엘))  시나리오1 - 초기 코드 작성// 플러터 동작시 반드시 있어야 함import 'package:flutter/material.dart';// 코드의 시작점void main() { // 플러터는 거의 모든 것이 위젯 // 전달된 위젯을 최상위 위젯으로 설정하고 앱을 시작하는 함수이다. runApp(MyApp());}// stl 단축키 활용class MyApp extends State.. 2025. 1. 6.
[Flutter 14] Dart의 상속과 다형성 다트(Dart)의 상속과 다형성 정리Dart는 객체지향 언어로, **상속(Inheritance)**과 **다형성(Polymorphism)**을 활용해 객체 간의 관계를 설계할 수 있습니다. 하지만 잘못된 설계는 유지보수성과 확장성을 저하시킬 수 있으므로, 상속과 다형성의 개념과 올바른 사용 방법을 이해하는 것이 중요합니다. 아래에서 이를 자세히 정리하겠습니다.1. 상속(Inheritance)상속은 부모 클래스가 가진 상태(변수)와 행위(메서드)를 자식 클래스가 물려받는 관계를 의미합니다.Dart에서 상속은 extends 키워드를 사용해 구현합니다.부모 클래스가 먼저 생성되고, 그 뒤에 자식 클래스가 생성됩니다.class Burger { String? b_name; Burger() { print(.. 2025. 1. 6.
[Flutter 13] Null 억제 연산자(!) 와 late Dart의 Null 억제 연산자 ! 완벽 정리Dart의 Null Safety 기능은 null로 인해 발생할 수 있는 오류를 방지하는 데 중점을 둡니다. 하지만 때로는 null일 가능성이 있는 값을 개발자가 null이 아님을 보장할 수 있는 상황이 있습니다. 이런 경우 **Null 억제 연산자 !**를 사용하여 null 체크를 생략할 수 있습니다. 아래에서 이 연산자에 대해 자세히 알아보겠습니다. 1. Null 억제 연산자 !란?기능: 변수나 값이 null이 아님을 Dart 컴파일러에게 명시적으로 알리는 연산자.Null Safety에서는 nullable 타입 (String?, int? 등)에 접근할 때 컴파일러가 null 여부를 검사합니다.! 연산자를 사용하면 컴파일러가 null 체크를 강제로 생략하도록 .. 2025. 1. 6.
[Flutter 12] Dart Null Safety 널 세이프티(Null Safety)는 개발자가 널 에러를 피할 수 있도록 도와주는 다트 프로그래밍 언어의 기능입니다.이 기능은 사운드 널 세이프티 인 다트(Sound Null Safety in dart)라고 불리며, 이를 통해 개발자는 코드 작성 시점에 널 에러를 잡을 수 있습니다.1. Null Safety란?Null Safety는 Dart 언어의 기능으로, null로 인해 발생할 수 있는 오류를 방지합니다.Sound Null Safety:Dart 컴파일러가 코드 분석 시, null이 될 수 있는 타입과 null이 될 수 없는 타입을 엄격하게 구분합니다.컴파일 단계에서 null 관련 에러를 확인하므로 런타임 중 발생할 수 있는 Null Pointer Exception을 예방합니다.Sound Null Sa.. 2025. 1. 6.
[ Flutter] 안드로이드 스튜디오 flutter SDK 버전 바꾸기 안드로이드 스튜디오 flutter SDK 버전 바꾸기 File ->  setting -> sdk 검색 -> Dart 탭 선택  DartSDK path 경로  새로운 flutter 파일 위치로 변경     기존과 의존성이 맞지 않기 떄문에 오류가 발생함  => pub get 옆의 pub upgrade를 눌러주면 환경변수가 맞춰지고,  다시 pub get을 하면 새롭게 가져옴   에러 발생시!!execution failed for task ':app:compiledebugjavawithjavac'..> Could not create service of type UserHomeScopedCompileCaches using UserHomeScopeServices.createCompileCaches(). 첫번째 .. 2025. 1. 6.
[플러터 11] Dart 클래스와 인스턴스 시나리오 코드1(클래스 생성해보기)클래스란?   클래스는 객체(인스턴스)를 정의하는 설계도 입니다.   인스턴스  =>  메모리 공간이 할당되었을때 인스턴스라고 한다.   객체(object) => 클래스를 통해서 프로그램에서 실제로 생성되는 인스턴스를 말함   객체 => 속성(상태), 행위(메서드)를 가질 수 있음   객체 지향 프로그래밍이란? (Object Orient programing)   객체와 객체간의 관계를 형성하고, 상호작용으로 애플리케이션을 설계, 구현하는 프로그래밍 패러다임중 하나입니다.   oop의 주요목적 => 재활용성, 유지보수성, 복잡한 문제를 더 작은 객체로 나누는 것void main() { //클래스란? //클래스는 객체(인스턴스)를 정의하는 설계도 입니다. //인스턴스 .. 2025. 1. 3.
[플러터 10] 화살표 함수 화살표 함수(arrow function)Dart에서의 화살표 함수(arrow function)는 함수를 간결하게 정의하고 사용할 수 있는 특별한 문법입니다. 다른 프로그래밍 언어에서는 람다 함수 또는 람다 표현식이라 부릅니다. 기존 함수 정의와 비교하면, 화살표 함수는 간단한 함수를 더 간결하게 표현할 수 있는 표현식입니다.  => 람다 표현식//화살표 함수//람다 표현식void main() { int num1 = 500; int num2 = 10; //선언부 int add(int n1, int n2) { //구현부 return n1 + n2; } //구현부가 복잡하다면 람다 표현식보다 함수형식이 좋다. //람다식 => 구현부가 간단한 것만 가능함 int add2(int n1, .. 2025. 1. 3.
[플러터 07] Dart 언어 함수 익명 함수 1단계 - 이름 없는 함수( 선언하더라도 외부에서 사용할 방법이 없다.)변수에 할당하지 않고 바로 익명 함수를 호출하는 것은 dart 에서 불가능하다. (int number) { return number * number; }; 2.단계  - 함수를 변수에 담을 수 있다.Dart 함수에 타입은 Function이다.Function(int) square = (int number) { return number * number;}; 3단계 function대신 var에 담을 수 있음var sub = (int number) { return number * number;};Function(int, int) sub2 = (int number1, int number2) { return numbe.. 2025. 1. 3.
[플러터 06] Dart 연산자 Dart 의 final 과 const const 의 경우, 컴파일 타임에서 상수를 정의할 수 있다. 즉, const 로 정의한 상수는 런타임에서 정의되는 값을 설정할 수 없다는 의미다. 예를 들어 DateTime.now() 의 경우 런타임에서 호출 될 때마다 결과 값이 다른데 이러한 값은 const 로 설정할 수 없다. 결국 const 로 설정하는 값은 대부분 리터럴이 될 것이다. final DateTime now = DateTime.now(); // 문제 없음// const DateTime now = DateTime.now(); // compile error //상수 - 한번 할당된 값이 변경되지 않는 변수이다.//dart 에서는 final 키워드와 const 키워드를 제공한다.//둘에 공통점은 값을 .. 2025. 1. 2.
728x90
반응형