목록프로그래밍 언어 (36)

수학과의 좌충우돌 프로그래밍

[python] Type Hints, python에 타입을 지정한다?

정적언어 VS 동적언어 Type Hints 에 대해서 알아보기 전에 우선 정적언어와 동적언어에 대한 이해가 필요합니다. 정적언어 컴파일 시 변수의 타입이 결정 변수 선언 시 자료형 지정 C, Java 등의 언어가 해당 동적언어 런타임 시 변수의 타입이 결정 실행 도중 변수에 예상하지 못한 타입이 들어와 Type Error 발생할 수 있음 python, javascript 등의 언어가 해당 Type Hints란 python은 대표적인 동적언어입니다. 그렇기 때문에 변수를 선언할 때, 함수가 매개변수를 받을 때 모두 자료형을 지정하지 않습니다. 위에서 말한대로 런타임 시 결정되기 때문에 실행 도중에 예상하지 못한 타입이 들어와 Type Error 발생할 수 있죠. Type Hints 는 이를 방지하고자 타입..

프로그래밍 언어/Python 2021. 6. 20. 20:32
[JAVA] 07. java.lang 패키지

java.lang 패키지 java.lang 패키지는 자바프로그래밍에 가장 기본이 되는 클래스들을 포함하고 있습니다. 그렇기 때문에 해당 패키지에 클래스들은 import문 없이도 사용할 수 있습니다. Object 클래스 Object 클래스는 모든 클래스의 최고 조상이기 때문에 멤버들은 모든 클래스에서 바로 사용가능합니다. 멤버변수는 따로 없으며 11개의 메서드를 가지고 있습니다. equals(Object obj) 매개변수로 객체의 참조변수를 받아서 비교하여 그 결과를 boolean값으로 알려주는 역할을 합니다. public boolean equals(Object obj){ return (this == obj); } 두 객체의 같고 다름을 참조변수의 값으로 판단합니다. 그렇기 때문에 서로 다른 두 객체를 e..

프로그래밍 언어/Java 2021. 1. 13. 23:05
[JAVA] 06. 예외처리

1. 예외처리(exception handling) 프로그램 오류 프로그램이 실행 중 어떤 원인에 의해서 오작동을 하거나 비정상적으로 종료되는 경우가 있습니다. 이러한 결과를 초래하는 원인을 프로그램 에러 또는 오류라고 합니다. 컴파일에러 : 컴파일 시 발생하는 에러 런타임에러 : 실행 시에 발생하는 에러 논리적에러 : 실행은 되지만 의도와 다르게 동작하는 에러 런타임에러를 방지하기 위해서는 프로그램이 실행 도중 발생할 수 있는 모든 경우의 수를 고려하여 이에 대한 대비를 하는 것이 필요합니다. 자바에서는 실행 시 발생할 수 있는 프로그램 오류를 에러(error)와 예외(exception) 두 가지로 구분하였습니다. 에러는 메모리부족이나 스택오버플로우와 같이 일단 발생하면 복구할 수 없는 심각한 오류이고,..

프로그래밍 언어/Java 2021. 1. 7. 01:18
[JAVA] 05. 객체지향 프로그래밍 (3)

1. 다형성(polymorphism) 다형성이란 여러 가지 형태를 가질 수 있는 능력을 의미하며 자바에서는 한 타입의 참조변수로 여러 타입의 객체를 참조할 수 있도록 함으로써 다형성을 구현하였습니다. 이로서 조상클래스 타입의 참조변수로 자손클래스의 인스턴스를 참조할 수 있도록 하였습니다. 아래 예시를 봅시다. class Tv { int channel; void channelUp() { ++channel; } void channelDown() { --channel; } } class CaptionTv extends Tv { String text; } 일반적으로 그 동안 각 클래스의 인스턴스를 생성하기 위해 아래와 같이 인스턴스의 타입과 일치하는 타입의 참조변수만을 사용했습니다. Tv t = new Tv()..

프로그래밍 언어/Java 2020. 12. 27. 22:13
[JAVA] 04. 객체지향 프로그래밍 (2)

1. 상속(inheritance) 자바에서 상속은 extends라는 키워드를 통해 가능합니다. class Child extends Parent { } 이 때 멤버만 상속되므로 생성자와 초기화 블럭은 상속되지 않습니다. 클래스간의 관계 상속 이외에도 클래스를 재사용하는 또 다른 방법이 존재합니다. 클래스 간에 포함(Composite) 관계를 맺어주는 것입니다. 클래스 간의 포함관계를 맺어주는 것은 한 클래스의 멤버변수로 다른 클래스 타입의 참조변수를 선언하는 것을 의미합니다. 아래와 같이 Circle과 Point 클래스가 있다고 가정합시다. class Circle{ int x; int y; int r; } class Point{ int x; int y; } Point 클래스를 재사용하여 Circle을 재정..

프로그래밍 언어/Java 2020. 12. 27. 22:06
[JAVA] 03. 객체지향 프로그래밍 (1)

1. 클래스에서의 변수 변수는 클래스변수, 인스턴스변수, 지역변수 모두 세 종류가 있습니다. 변수의 종류를 결정짓는 중요한 요소는 변수의 선언된 위치입니다. 멤버변수를 제외한 나머지 변수들은 모두 지역변수이며, 멤버변수 중 static이 붙은 것은 클래스변수, 붙지 않은 것은 인스턴스변수입니다. class Variables { int iv; // 인스턴스변수 static int cv; // 클래스변수 void method() { int lv = 0; // 지역변수 } } 인스턴스 변수 생성 시기 : 인스턴스가 생성되었을 때 인스턴스 변수는 인스턴스가 생성될 때마다 생성되므로 인스턴스마다 다른 값을 유지 할 수 있습니다. 선언 위치 : 클래스 영역 클래스 변수 생성 시기 : 클래스가 메모리에 로딩될 때 V..

프로그래밍 언어/Java 2020. 12. 27. 17:29
[JAVA] 02. 변수

자료형은 크게 기본형과 참조형 두 가지로 나눌 수 있습니다. 기본형 변수는 실제 값을 저장하고, 참조형은 어떤 값이 저장되어 있는 주소를 값으로 가집니다. 1. 기본형 기본형에는 모두 8개의 타입이 있으며 크게 논리형, 문자형, 정수형, 실수형으로 구분됩니다. 논리형 Boolean true와 false 중 하나의 값 1bit만 있어도 표현하기에 충분하지만 java에서 데이터를 다루는 최소단위가 byte이기 때문에 1byte로 표현 문자형 char 하나의 문자를 저장 정수형 byte, short, int, long 실수형 float, double 1byte 2byte 4byte 8byte 논리형 boolean 문자형 char 정수형 byte short int long 실수형 float double 2. 상..

프로그래밍 언어/Java 2020. 11. 27. 17:09
[JAVA] 01. 자바를 시작하기 전에

1년도 더 전에 java에 대해서 아주 살짝 공부를 해보았는데 취업을 하고보니 java 개발자가 되어있네요. python과 django만 하다가 다른 언어, 다른 프레임워크를 사용할려고 하니 모든게 낯설고 어렵지만 또 차근차근 공부해보도록 하겠습니다. 그래서 당분간은 java에 대한 기초를 학습하며 포스팅하도록 하겠습니다 :) 1. 자바 1.1 자바란? 썬 마이크로 시스템에서 개발하여 1996년 1월에 공식적으로 발표한 객체지향 프로그래밍 언어(현재는 오라클이 인수함) 운영체제에 독립적이기 때문에 다양한 기종의 컴퓨터와 운영체제가 공존하는 인터넷 환경에 적합 풍부한 클래스 라이브러리 1.2 자바의 역사 1991년 썬 엔지니어들에 의해서 고안된 오크(Oak)라는 언어에서부터 시작 원래 목표는 가전제품에 탑..

프로그래밍 언어/Java 2020. 11. 27. 17:06