전체 글 60

자바(Java) - 객체지향 언어(2)

ch30. 오버로딩(overloading) 메서드도 변수와 마찬가지로 같은 클래스 내에서 서로 구별될 수 있어야 하기 때문에 각기 다른 이름을 가져야 한다. 그러나 자바에서는 한 클래스 내에 이미 사용하려는 이름과 같은 이름을 가진 메서드가 있더라도 매개변수의 개수 또는 타입이 다르면, 같은 이름을 사용해서 메서드를 정의할 수 있다. 이처럼, 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것을 '메서드 오버로딩(method overloading)' 또는 간단히 '오버로딩(overloading)'이라 한다. 1. 메서드 이름이 같아야 한다. 2. 매개변수의 개수 또는 타입이 달라야 한다. 3. 반환 타입은 관계없다. 오버로딩된 메서드들은 매개변수에 의해서만 구별될 수 있으므로 반환 타입은 오버로딩..

자바의정석 2023.09.21

자바(Java) - 객체지향 언어(1)

ch1 . 객체지향 언어 프로그램을 다수의 객체로 만들고, 이들끼리 서로 상호작용하도록 프로그래밍 언어입니다. 1. 코드의 재사용이 높다. - 새로운 코드를 작성할 때 기존의 코드를 이용하여 쉽게 작성할 수 있다. 2. 코드의 관리가 용이하다. - 코드간의 관계를 이용해서 적은 노력으로 쉽게 코드를 변경할 수 있다. 3. 신뢰성이 높은 프로그래밍을 가능하게 한다. - 제어자와 메서드를 이용해서 데이터를 보호하고 올바른 값을 유지하도록 하며, 코드의 중복을 제거하여 코드의 불일치로 인한 오동작을 방지할 수 있다. 객체지향언어의 가장 큰 장점은 '코드의 재사용성이 높고 유지보수가 용이하다.'는 것이다. 이러한 객체지향언어의 장점은 프로그램의 개발과 유지보수에 드는 시간과 비용을 획기적으로 개선하였다. * 너..

자바의정석 2023.09.20

자바(Java) - 배열(Array)

import java.util.Arrays; class Main{ public static void main(String[] args) { String str = "안녕하세요"; char ch = str.charAt(3); System.out.println(ch); } } ch1. 배열이란? 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것을 '배열(array)'이라고 한다. "배열은 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것" 여기서 중요한 것은 '같은 타입'이어야 한다는 것이며, 서로 다른 타입의 변수들로 구성된 배열은 만들 수 없다. int[] score = new int[5]; 변수와 달리 배열은 각 저장공간이 연속적으로 배치되어 있다는 특징이 있다. 또한 변수의 선언과 달리 다뤄야 할..

자바의정석 2023.09.19

Dart #4 비동기 프로그래밍(Async Programming)

void main() async{ //Future - 미래 // 미래에 받아올 값 Future name = Future.value('하하호호'); Future number = Future.value(1); Future isTrue = Future.value(true); await addNumber(1, 1); await addNumber(2, 2); } Future addNumber(int number1, int number2) async { print("계산 시작 : $number1 + $number2"); // 서버 시뮬레이션 await Future.delayed(Duration(seconds: 2), (){ print('계산 완료: $number1 + $number2 = ${number1 + num..

Flutter(플러터) 2023.09.18

Dart #3 함수형 프로그래밍(Functional Programming)

void main() { List people = [ { 'name': '로제', 'group': '블랙핑크', }, { 'name': '지수', 'group': '블랙핑크', }, { 'name': 'RM', 'group': 'BTS', }, { 'name': '뷔', 'group': 'BTS', }, ]; print(people); final blackPink = people.where((x) => x['group'] == '블랙핑크').toList(); final BTS = people.where((x) => x['group'] == 'BTS').toList(); print(blackPink[0]); print(BTS[0]); }​ void main() { List blackPink = ['로제',..

Flutter(플러터) 2023.09.18

Dart #2 객체지향 프로그래밍(Object Oriented Programming)

OOP(Object Oriented Programming) - 객체지향 프로그래밍 int, String과 같은 기본 데이터 타입을 사용하여 변수를 선언하면, 해당 변수는 그 타입의 데이터만 저장할 수 있습니다. 클래스를 사용하는 것은 단순히 변수에 저장할 수 있는 데이터의 타입을 확장하는 것 이상의 의미가 있습니다. 클래스를 사용하면, 여러 변수(프로퍼티)와 함수(메서드)를 하나의 유닛으로 그룹화할 수 있습니다. 이렇게 하면, 코드를 더 구조화하고 재사용할 수 있으며, 더 복잡한 데이터 구조와 알고리즘을 더 쉽게 표현할 수 있습니다. 예를 들어, 당신의 Idol 클래스는 두 개의 프로퍼티(name과 members)와 두 개의 메서드(sayHello와 introduce)를 포함하고 있습니다. 이 클래스를 ..

Flutter(플러터) 2023.09.18

Dart #1 기본기

void main(){ // variable var name = '코드팩토리'; print(name); var name2 = '소녀시대'; print(name2); name = '프로그래밍'; print(name); // var name = '' 변수 선언은 두번 할 수 없다. } void main(){ // 정수 // integer int number1 = 10; print(number1); int number2 = 20; print(number2); print(number1 + number2); print(number1 - number2); print(number1 * number2); print(number1 / number2); } void main() { // 실수 // double double..

Flutter(플러터) 2023.09.17

자바(Java)(3) - 연산자, if, else if, else 문

기본 연산자 사칙(산술)연산자, 비교연산자, 논리연산자 사칙연산자 +, -, *, /(나눈 몫), %(나눈 나머지) class Main{ public static void main(String[] args) { System.out.println(10 + 10); System.out.println(30 - 15); System.out.println(30 * 10); System.out.println(10 / 3); // 정수와 정수 연산은 결과값이 정수 System.out.println(10 / 3.0); // 정수와 실수 연산은 결과값이 실수다. System.out.println(10 % 3); } } 비교연산자 : true, false >=, > , 3); System.out.println(10 = 3..

자바(Java) 2023.09.17

React 상태 관리 라이브러리 Redux vs Recoil vs Mobx

React에서 상태란 컴포넌트에서 관리되는 동적인 정보(데이터)이다. 상태에 따라 View가 렌더링되며, 상태가 변경되면 해당 컴포넌트의 View도 재렌더링되어 바뀌게 된다. 1. Redux Redux는 전세계 리액트 개발자들이 가장 많이 사용하는 상태 관리 라이브러리이다. Redux는 컴포넌트 바깥에서 전역적으로 상태를 관리한다는 점은 React context와 유사하다. 특징으로, 중앙 집중식 Storage와 상태 업데이트를 위한 Reducer를 사용하고, 단방향 데이터 흐름을 따른다는 점을 들 수 있다. 장점 - 미들웨어를 활용하여 여러 비동기, 로그 작업 등을 처리할 수 있는데 이때 Redux를 위한 라이브러리를 사용하여 더 쉽게 구현이 가능합니다. - 단방향 데이터 흐름을 따르게, Reducer..

카테고리 없음 2023.09.17
728x90