Languages 120

[노마드코더] #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

[HUFS/객체지향프로그래밍] #6 상속

클래스 상속 이미 개발된 클래스를 상속(재사용)시켜 새로운 클래스를 만들기에 중복되는 코드를 줄일 수 있다 여러 개의 부모를 한 번에 상속받을 수 없음 부모 클래스에서 private 접근 제한을 갖는 필드와 메소드 상속 제외 부모와 자식 클래스의 패키지가 다를 경우 default 접근 제한을 갖는 필드와 메소드 상속 제외 super를 사용해 자식 생성자에서 부모 생성자 호출 예시 package sec01.exam02; public class People { public String name; public String ssn; public People(String name, String ssn) { this.name = name; this.ssn = ssn; } } package sec01.exam02; ..

Languages/Java 2022.12.30

[HUFS/객체지향프로그래밍] #5 클래스

객체 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지며 식별 가능한 것을 객체(Object)라고 하며, 이는 속성(필드)과 동작(메소드)로 구성된다 집합 관계: 부품과 완성품의 관계 사용 관계: 객체 간의 상호작용 상속 관계: 상위(부모) 객체를 기반으로 하위(자식) 객체를 생성 객체 지향 프로그래밍: 집합/사용 관계에 있는 객체들을 설계/조립하여 프로그램 개발 클래스(Class)는 객체의 설계도라고 할 수 있으며 인스턴스(Instance)는 클래스로부터 만들어진 객체이다 클래스 선언 보통 객체를 구상한 후 클래스 이름을 결정하는데 다음과 같은 명명 규칙을 따른다 하나 이상의 문자로 이루어질 것 첫 글자에는 숫자가 올 수 없음 $, _외의 특수 문자는 사용할 수 없음 자바 ..

Languages/Java 2022.12.30

[HUFS/객체지향프로그래밍] #4 참조 타입

기본 타입과 참조 타입 기본 타입(primitive type): 정수, 실수, 논리, 문자 리터럴 저장 참조 타입(reference type): 배열, 열거, 클래스, 인터페이스 (객체의 번지를 참조) 메모리 사용 영역 메모리 사용 영역(Runtime Data Area)은 메소드 / 힙 / JVM 스택 영역으로 나뉜다 메소드 영역(Method Area): 클래스별로 정적 필드, 상수, 생성자, 메소드 등을 분류해 저장 힙 영역(Heap Area): 객체와 배열이 생성되는 영역 JVM 스택 영역: 메소드가 호출되면 프레임이 추가되고 메소드가 종료되면 프레임이 제거 null과 NullPointerException 참조 타입 변수는 객체를 참조하지 않는다는 뜻으로 null 값을 가질 수 있는데, 이 또한 스택..

Languages/Java 2022.12.27

[HUFS/객체지향프로그래밍] #3 연산자, 조건문과 반복문

연산자와 연산자의 종류 연산자(operator): 연산에 사용되는 표시나 기호 피연산자(operand): 연산자와 함께 연산 되는 데이터 연산식(expression): 연산자와 피연산자를 사용하여 연산 과정을 기술한 것 연산의 방향과 우선순위 복합적으로 구성된 연산식의 연산 우선순위 단항 > 이항 > 삼항 산술 > 비교 > 논리 > 대입 우선순위가 같다면 왼쪽에서 오른쪽 괄호()를 사용해 먼저 처리할 연산식 묶기 * 예외: 단항 / 부호 / 대입 연산자는 오른쪽에서 왼쪽 피연산자 수에 따라 단항 / 이항 / 삼항 연산자로 구분 단항 연산자: 부호, 증감 연산자 이항 연산자: 산술, 비교, 논리 연산자 삼항 연산자: 조건 연산자 단항 연산자 1. 부호 연산자 (+, -) 2. 증감 연산자 (++, --) ..

Languages/Java 2022.12.26

[HUFS/객체지향프로그래밍] #2 변수와 타입

변수 선언 값을 저장할 수 있는 메모리의 특정 번지에 붙여진 이름을 변수(Variable)라 한다 변수 사용을 위해서 먼저 변수 선언을 해줘야 한다 변수의 속성 이름: 변수의 이름 주소: 변수의 값이 저장될 메모리 주소 값: 배정문에 의해 부여된 변수의 값 타입: 변수가 가질 수 있는 값의 범위와 이 값에 대한 연산들의 집합 영역: 변수의 사용이 허락되는 범위 수명: 변수가 메모리 주소에 할당되어 있는 기간 값 저장 대입 연산자(=)를 사용해 변수에 값을 저장할 수 있으며, 변수에 최초로 값이 저장될 때 메모리에 변수가 생성되는 것을 초기화, 이 때의 값을 초기값이라 한다 변수 사용 변수의 값을 이용해 출력문이나 연산식을 수행하는 것을 변수 사용이라 한다 변수 사용 범위 메소드 블록 내에서 선언된 변수를..

Languages/Java 2022.12.23

[HUFS/객체지향프로그래밍] #1 자바 시작

기계어와 프로그래밍 언어 기계어 0과 1로 이루어진 코드 사용 사람과 기계어 사이 다리 역할을 하는 프로그래밍 언어 필요 소스(source) 파일: 프로그래밍 언어로 작성한 파일 컴파일(compile): 소스 파일을 기계어 파일로 번역 프로그래밍 언어 자바(Java): 임베디드, 웹, 안드로이드 소프트웨어(SW) 개발 분야 C / C++: 하드웨어(HW) 장치 제어 및 임베디드 SW 분야 C++ / C#: 데스크탑 앱 또는 ASP.NET 기반 웹 SW 분야 파이썬 (Python): 빅데이터 분석 및 머신러닝 SW 분야 자바 소개 1995년 마이크로시스템즈에서 발표한 자바(Java)는 현재 웹사이트 및 다양한 애플리케이션 개발의 핵심 언어이다 자바(Java)의 특징 오라클 라이선스 (자바 개발 도구의 배포..

Languages/Java 2022.12.22