Post

2021-02-18-TIL

2021-02-18-TIL

자기경영 노트

https://github.com/mazassumnida/mazassumnida

C++에 붙은 ++는 C언어에서 사용하는 증가를 뜻하는 연산자다. 즉 C언어에 몇 가지 함수가 더해진 것이 아니라 C언어의 개념이나 기능이 전체적으로 증가한 것이므로 ++라는 증가연산자를 뒤에 붙인 것이다. 그리고 원래부터 이 언어가 C++라는 이름을 가진 것은 아니다. 처음에는 ‘C with Class’라고 불렀다. 객체를 구현하기 위해서 클래스를 제공하는 C언어라는 뜻이다.

C++은 1979년에 미국의 벨 연구소에서 일하던 스트라우스트럽이 만든 컴퓨터언어로 C, 알골, 시뮬라 등의 언어를 기초로 해서 만들었다. 특히 1987년에 결성된 위원회에서 기존의 C 언어와 호환성을 갖도록 규정했기 때문에 C 프로그래머들은 큰 어려움 없이 C++를 사용할 수 있게 되었다. 기능과 문법이 C에서 영향을 받은 반면, C++의 대표적인 장점인 객체 지향 언어의 성격은 객체 지향 언어의 시초라고 할 수 있는 시뮬라에서 많은 영향을 받았다. 그리고 C++이 국내의 프로그래머에게 많은 사랑을 받는 요인을 손꼽으라면 C언어와의 호환성과 어셈블리어의 연결사용을 들 수 있다.

enum은 완벽한 타입이다. 따라서 type safe 하다. C언어의 enum은 type-safe 하지 않지만, 자바에서는 type-safe 하다. 즉, enum 자체가 타입으로 간주된다.

써야할 상수가 많고 같은 종류일 때, 관련있는 상태가 2개 이상일때, 불연속적인 이 많고 갯수의 제한이 있을 때

enum끼리 같은 타입이면 비교 등의 연산이 가능해야한다.

1
2
C언어에서 company.apple == fruit.apple 은 같다고 한다.
JAVA에서는 아예 에러가 난다.
package [package_name] 하고 바로 자동완성 키를 누르면 자동으로 패키지가 이동된다.

JUnit말고 assertJ사용해야한다.

옵션 + 엔터

1
동등성(Equivalence) 동질성(Homogeneity)

enum에는 순서가 있다.

왜 써야하는지 이유가 명확하지 않다면 안쓰는게 많다. (실무에서는) 공부할 때는 사용하는 것이

static 남발하면 서버가 죽을 수가 있다. 당장은 아니고 두달 뒤에 죽는다. 등 나만의 합리적인 이유를 꼭 만들자.

https://okky.kr/article/39509

String 은 + 안쓰는게 나은가요?

electric handheld game

enum의 가장 큰 목적은 DB때문이다.

1
2
3
4
5
enum Size{
SMALL, NORMAL, LITTLE_BIG, BIG
}
이렇게 LITTLE_BIG이 추가되면, 그것이 BIG이 되어버리는 문제가 발생한다.
MySQL의 enum은 회사에서는 절대로 사용하지 않는다.

ordinal은 평범한 상황에서 절대 사용하지 말것!!

유니크한 식별자가 없으면 VO다. 객체를 식별하는 것이 무의미할 때, 예를 들어, 니 천원 내 천원이 차이가 없을 때. enum은 일종의 VO이다.

https://www.geeksforgeeks.org/upcasting-vs-downcasting-in-java/?ref=rp


  1. 객체는 함수 내부에서 변경할 일이 많이 생기더라.
  2. 스택에 직접 구조체를 복사하면 난리가 난다.

자바에서는 메서드가 값을 변경하는지 알수없으므로 행동을 명확히 나타내도록 메서드명을 지정하는 것이 바람직하다.

This post is licensed under CC BY 4.0 by the author.