인터페이스
·
📖TIL
인터페이스는 개발자들간의 약속을 정의할때 사용구현을 강제할 때다형성을 활용 가능해짐interface GooglePlay{ void SetID();}class Galaxy: GooglePlay { public void SetID() { }}class Pixel: GooglePlay { public void SetID() { }}class IPhone { }class Xperia { }class Motorala { }Class Program{ static void Main(string[] args) { GooglePlay AndroidPhone = new Galaxy(); }} 인터페이스와 추상클래스 공통점과 차이점 공통점직접 객체 ( 인스턴스 ) ..
클래스 ( Class )
·
⭐C Sharp/11. 객체 지향
클래스를 가장 쉽게 이해하는 방법은 설계도 ( 청사진 ) 로 비유하는 것이다.C# 과 같은 객체지향 언어에서는 클래스가 프로그램의 기본 단위이자 중심이라고 할수 있다. 객체 ( Object ) 와 클래스의 관계클래스 ( Class ) 는 객체 ( Object ) 를 만들기 위한 설계도이다.데이터 ( 필드 , 프로퍼티 ) + 기능 ( 메서드 ) 를 묶어놓은 사용자 정의 자료형이다.- 클래스 ( class ) : 객체를 만들기 위한 틀 ( 설계도 )- 객체 ( Object ) : 클래스에 따라 만들어진 실제 실체 ( 인스턴스 )- 인스턴스 ( Instance ) : 특정 클래스에서 생성된 객체 ( 출처를 강조 ) 클래스의 구성 요소1. 필드 ( Field ) : 클래스 내부에 선언된 변수와 같은 데이터..
메모리 구조
·
⭐C Sharp/11. 객체 지향
메모리 구조메모리가 저장되고 삭제되는 과정을 메모리의 할당과 해제라고 표현한다. 메모리 할당사용을 위해 필요한 크기만큼의 비어있는 메모리를 측정하여 사용한다.C# 에서는 크게 두 가지- 스택 ( Stack ) 에 할당- 힙 ( Heap ) 에 할당 메모리 해제 할당된 메모리를 다시 사용할 수 있도록 메모리에 있는 내용을 비워두는 작업C / C++ 같은 언어는 free() 키워드 같은 걸로 직접 해제해야 하지만,C# 은 GC ( Garbage Collector ) 가 자동으로 해제해준다.- GC 는 " 더이상 참조되지 않는 객체 " 를 찾아서 메모리를 회수- 따라서 일반적으로 프로그래머가 직접 해제하지 않아도 된다. 메모리 누수 사용된 메모리가 해제되지 않고 남아있다면, 매우 불필요하게 공간을 차지..
📌Static
·
⭐C Sharp/11. 객체 지향
값타입과 참조타입의 메모리 할당 시점 1. 값 타입 ( Valuse Type )- 대표 : int , float , struct , bool 등..- Stack 영역에 주로 저장된다. 할당 시점- 변수를 선언할 때 곧바로 스택에 공간이 잡힌다.- 값 타입은 블록 범위가 끝난 시점에 사라진다.int x = 10; // 스택에 바로 10이 저장됨 2. 참조 타입 ( Reference Type )- 대표 : class , array , string 등..- Heap 영역에 실제 데이터가 저장된다.- Stack 에는 Heap 을 가리키는 참조 ( 주소값 ) 만 저장된다. 할당 시점- new 키워드를 만나는 순간 Heap 에 메모리가 잡힌다.- 참조 타입은 더 이상 사용되지 않아서 자동으로 할당 해제된다. ( ..
250916 예습
·
📖TIL
인자값 : 함수에 값을 넣는 값 매개변수 : 빈 컵인자값 : 컵에 실제로 따라 넣는 물 인스턴스 : 클래스로부터 만들어진 실제 객체 객체지향, 클래스, 프로퍼티, 캡슐화, 상속, 추상화, 다형성, 접근지정자 ctor 키워드 찾는 방법Ctrl + FCtrl + TabCtrl + 키워드 클릭 자동구현 프로퍼티 백킹필드 This. 디폴트 매개변수, partial class, namespace call by value, call by ref ref, in, out
250915 복습
·
📖TIL
객체지향데이터(상태)와 그 데이터를 다루는 동작(메서드)를 하나의 단위(객체)로 묶어서,객체들끼리 메시지를 주고 받게 만드는 프로그래밍 방식 클래스는 설계도.객체는 설계도로 만들어진 실제 물건 값 타입- 스택에 값 저장 참조 타입- 스택에 주소만 저장- 힙에 객체의 실제 내용 저장 캡슐화 : 내부는 감추고 안전한 문 ( 프로퍼티 / 메서드 ) 으로만 접근상속과 다형성 : 오늘은 배우지 않았다.Car car = new Car();[설계도이름] [변수이름] = new Car(); Car 클래스를 실제로 메모리에 만들어라 라는 명령new 는 새로운 인스턴스를 힙에 생성한다는 뜻(); 는 생성자를 호출하는 부분인데, 지금은 아무 생성자도 없으니까 기본 생성자가 자동으로 호출
250915 예습
·
📖TIL
객체지향프로그램 내에서 개별적으로 존재하는 각 객체들이 서로 상호작용 하며 하나의 프로그램을 구동시킨다.게임에 자동차를 하나 넣기 위해 현실의 모든것들을 담을 필요는 없다.프로그램에 필요한 내용만 잘 추려서 담는걸 "추상화"라고 한다.프로그램에 필요한 요소와 기능을 묶어서 설계도를 만들면 "클래스"라고 한다.그 자료형을 통해 만들어진 결과물을 "객체"라고 한다.이 객체들의 상호작용이 현재 가장 많이 사용되는 프로그래밍 패러다임이다.- 추상화 : 복잡한 현실의 모든 세부 사항 생략 후 , 문제 해결에 필요한 요소와 기능만을 담음- 클래스 : 객체를 만들기 위한 설계도( struct 나 enum 설계도를 생성, 그 자체는 동작 x , 변수 생성해야 작동 )- 객체 : 클래스를 기반으로 만들어진 실제 데이터의..
Enum 반환형
·
⭐C Sharp/08. 열거형
Enum 은 특정 상수들의 집합을 나타내는 열거형 자료형으로,그 자체로 반환형이 될 수 있다.함수를 선언 할때[ 반환형 ] [ 함수이름 ] ( 매개변수 )로 선언하게 되는데 반환형에 Enum 이 들어올수 있다.함수나 메서드의 반환 타입으로 enum 을 지정하여 여러 의미 있는 값 중 하나를 반환 가능.enum Result{ Win, Lose, Draw}enum Rps{ Scissors = 1, Rock = 2, Paper = 3}Result 라는 열거형을 선언RPS 라는 열거형을 선언static Result Versus(Rps user, Rps comp) { }이런 식으로 작성 가능
화살표 함수 사용하기 ( 람다식 )
·
⭐C Sharp/00. 문법
internal class Program{ static void sum(int a, int b) => Console.WriteLine(a + b); static void hello() => Console.WriteLine("안녕하세요"); static void Main(string[] args) { sum(10, 20); hello(); }} 화살표 함수 메서브 본문이 단순한 형태일 때는 중괄호를 생략하고 바로 화살표 연산자 ( => ) 를 사용하여 화살표 함수로 구현 가능C# 에서 식 본문 멤버 ( Expression-bodied members ) 라는 문법 ( Syntax ) 에 속한다.화살표 연산자를 영어 원문 그대로 "goes to" 로 부르기도..