전체 글 380

[노마드코더] #4 Functions

Defining a Function String sayHello(String name) => "Hello $name"; void main() { print(sayHello("yee")); } 반환 값의 타입을 명시해 함수 선언 (반환 값이 없다면 void) JS와 동일하게 return을 생략하는 arrow function 가능 Named Parameters String sayHello( {required String name, int age = 23, required String country}) => "$name / $age / $country"; void main() { print(sayHello(name: "yee", age: 23, country: "Korea")); } 함수 선언부에서 매개변수를..

Languages/Dart 2023.01.09

[노마드코더] #3 Data Types

Basic Data Types void main() { String name = "tom"; bool alive = true; int age = 10; // 정수 double money = 52.55; // 실수 num x = 12; num y = 1.2; } 거의 모든 타입은 클래스 기반의 객체로, 다양한 메소드 지원 int와 double은 num을 상속 / 드물지만 num 자체 사용도 가능 List void main() { var giveMeFive = true; var item = [ 1, 2, 3, 4, if (giveMeFive) 5, ]; List numbers = [ 1, 2, 3, 4, ]; } 리스트를 선언하는 두 가지 방법 우선적으로 var 사용 / Class에서는 타입 명시 마지막 요..

Languages/Dart 2023.01.09

[HUFS/객체지향프로그래밍] #12 컬렉션 프레임워크

컬렉션 프레임워크 java.util 패키지에서 객체 관리를 위해 제공하는 인터페이스와 구현 클래스를 컬렉션 프레임워크라 한다 List 컬렉션 배열과 비슷하게 객체를 인덱스로 관리 저장 용량이 자동으로 증가하며 객체 저장 시 자동 인덱스 부여 객체의 추가/삭제/검색을 위한 다양한 메소드 제공 객체 자체를 저장하는 것이 아닌 객체의 번지를 참조 (중복 저장 가능) Set 컬렉션 List 컬렉션과 달리 객체의 저장 순서가 유지되지 않음 객체를 중복하여 저장할 수 없고 하나의 null만 저장 가능 HashSet, LinkedHashSet, TreeSet 등으로 활용 Map 컬렉션 key와 value로 구성된 Map.Entry 객체를 저장하는 구조 Entry는 Map 인터페이스 내부에 선언된 중첩 인터페이스 ke..

Languages/Java 2023.01.09

[노마드코더] #2 Variables

Hello World void main() { print("hello world"); } main 함수는 모든 Dart 프로그램의 Entry point 프로그램 실행 시 main 함수에 쓴 코드들이 호출 (없다면 실행 불가) 세미콜론(;)이 필요 (일부로 안 쓸 때도 있어 formatter가 붙여주진 않음) The Var Keyword void main() { var food1 = "pizza"; // 방법1 String food2 = "chicken"; // 방법2 food1 = "hamburger"; } var 키워드 or 타입을 직접 지정해 변수 선언 var 키워드의 경우 Dart가 자동으로 타입을 추론 값의 업데이트는 같은 타입으로만 가능 함수나 메소드 내부에 지역 변수를 선언하는 경우 ~ var..

Languages/Dart 2023.01.08

[HUFS/객체지향프로그래밍] #11 스레드

스레드 실행 중인 하나의 애플리케이션을 프로세스(process)라고 하며, 애플리케이션이 실행되면 운영체제로부터 실행에 필요한 메모리를 할당 받아 코드를 실행한다 운영 체제는 CPU 및 메모리 자원을 병렬로 할당하는 멀티 태스킹이 가능한데, 각 프로세스는 순차적으로 실행할 코드 이름인 스레드(thread)를 병렬로 실행할 수 있다 메인 스레드 모든 자바 애플리케이션은 메인 스레드가 main() 메소드를 실행하며 시작된다 작업 스레드 멀티 스레드 애플리케이션을 개발하려면 몇 개의 작업을 병렬로 실행할 지 결정한 뒤 각 작업별로 클래스를 상속/생성해서 작업 스레드를 객체화해 사용해야 한다 동기화 메소드 멀티 스레드 프로그램에서 스레드들이 객체를 공유해 작업하면 예상치 못한 결과가 나올 수 있다 스레드가 사용..

Languages/Java 2023.01.06

[HUFS/객체지향프로그래밍] #10 기본 API 클래스

자바 API 도큐먼트 공식 문서에서 자주 사용되는 클래스 및 인터페이스 API를 찾아 사용🔽 Overview (Java SE 19 & JDK 19) This document is divided into two sections: Java SE The Java Platform, Standard Edition (Java SE) APIs define the core Java platform for general-purpose computing. These APIs are in modules whose names start with java. JDK The Java Development Kit (JDK) AP docs.oracle.com Object 클래스 equals() 메소드의 매개 변수 타입은 Object인..

Languages/Java 2023.01.06

[노마드코더] #1 Introduction

Dart는 모든 플랫폼에서 빠른 앱을 위한 클라이언트 최적화 객체 지향 언어이다 UI 최적화: 사용자 인터페이스 생성 요구에 특화된 구조로 개발 생산적인 개발: 핫 리로드로 실행 중인 앱에서 즉시 결과 확인 가능 모든 플랫폼: 모바일, 데스크톱 및 백엔드용 ARM 및 x64 머신 코드, 웹용 JavaScript로 컴파일 Flutter 프레임워크는 인기 있는 다중 플랫폼 UI 툴킷으로 Dart 언어로 구동되며 iOS, Android, macOS, Windows, Linux 및 웹에서 실행되는 UI 경험을 빌드하기 위한 도구 및 UI 라이브러리를 제공한다 기본 플랫폼: 모바일 및 데스크톱 장치를 대상으로 하는 앱의 경우 Dart의 JIT(Just-In-Time) 컴파일 기능이 있는 Dart VM과 기계 코드..

Languages/Dart 2023.01.04

[HUFS/객체지향프로그래밍] #9 예외 처리

예외와 예외 클래스 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 발생하는 프로그램 오류를 예외(exception)라고 하며, 예외 처리 프로그램으로 정상 실행 상태를 유지해야 한다 * 개발자의 경험에 의해 예외 처리 코드 작성, 없을 경우 프로그램 강제 종료 일반 예외: 컴파일러가 체크하는 예외로, 컴파일 과정에 해당 예외 처리 코드가 있는지 검사 실행(runtime) 예외: 컴파일러가 체크하지 않는 예외로, 검사 없이 실행 시 예측 없이 갑자기 발생 NullPointerException: 가장 빈번하게 발생하는 실행 예외로, 객체 참조가 없는 상태의 참조 변수로 객체 접근 연산자를 사용할 경우 발생 ArrayIndexOutOfBoundsException: 배열에서 인덱스 범위를 초과할 경우 발생..

Languages/Java 2023.01.04

[HUFS/객체지향프로그래밍] #8 중첩 클래스와 중첩 인터페이스

중첩 클래스 클래스 내부에 선언한 클래스를 중첩 클래스(nested class)라 하며, 클래스 내부에 선언한 인터페이스를 중첩 인터페이스(nested interface)라 한다 내장 클래스는 외부 클래스의 멤버가 private이어도 접근 가능 내장 클래스는 외부로부터 보이지 않고 철저하게 숨겨 짐 익명 클래스로 콜백 메소드를 편리하게 작성 가능 클래스의 멤버로서 선언되는 중첩 클래스를 멤버 클래스라고도 하며, 메소드 내부에서 선언되는 중첩 클래스는 로컬 클래스라 한다 (메소드가 종료되면 사라짐) static 키워드 없이 중첩 선언된 클래스를 인스턴스 멤버 클래스라 하며, 정적 필드와 메소드가 아닌 인스턴스 필드와 메소드만 선언 가능하다 반면 static 키워드로 선언된 정적 멤버 클래스는 모든 종류의 ..

Languages/Java 2023.01.04

[HUFS/객체지향프로그래밍] #7 인터페이스

인터페이스 선언 코드는 인터페이스(interface)를 통해 객체와 서로 통신해 코드 수정 없이 객체 교환이 가능하다 인터페이스는 클래스와 유사하나 객체를 생성할 수 없어 생성자를 가질 수 없다 인터페이스 예시 package sec01.exam03; public interface RemoteControl { //상수 int MAX_VOLUME = 10; int MIN_VOLUME = 0; //추상 메소드 void turnOn(); void turnOff(); void setVolume(int volume); } 인터페이스의 구현과 사용 인터페이스에서 정의된 추상 메소드를 재정의해서 실행 내용을 가지고 있는 클래스를 구현(implement) 클래스라 하며, 클래스 선언부에 implements 키워드와 인터..

Languages/Java 2023.01.03