자바 언어가 C와 다른 가장 큰 특징이 무엇일까? 여러 가지가 있겠지만 필자는 모든 클래스가 Object를 상속한다는 점을 들겠다. 다른 말로 Object가 모든 클래스의 슈퍼클래스다. 놀라운 일이지만 모든 객체는 Object가 될 수 있다. 좀더 정확히 말하면 Object 타입의 변수에 의해 참조될 수 있다. 스트링이나 새로 만든 학생 객체나 심지어는 int 값도 Object 타입의 변수 obj에 들어갈 수 있다. Object obj = null; obj = "abcde"; obj = 3; obj = new Student(); 이것이 어떻게 가능할까? 자바에서 모든 것은 객체고 객체는 모두 Object 클래스를 상속한 어떤 클래스의 인스턴스다. 그러므로 모든 객체는 Object 타입의 변수에 들어갈 수..
소프트웨어 프로그램에는 프로그램의 시작과 끝을 책임지는 main 함수가 있다. 객체지향 프로그램에서도 프로그램은 하나의 클래스 객체(메인 클래스)에 의해 실행이 시작된다(이런 것을 driver 클래스라고도 한다). 또한 프로그램이 가져야 할 자료구조 전체를 관리하는 책임을 지는 클래스도 있다. 메인 클래스와 driver 클래스와 전체를 관장하는 클래스가 같을 때도 있고 다를 때도 있다. 그런데 흔히 이러한 클래스의 객체는 하나만 존재해야 한다. 여러 번 new 해서 객체가 만들어지면 안된다. 이런 클래스를 싱글톤 클래스라고 한다. 싱글톤 클래스는 객체가 하나만 존재해야 하는 클래스로 이것을 보장하는 방법으로 싱글톤 패턴이라는 것이 있다. 패턴이란 프로그래밍에서 흔히 발생하는 문제를 구현하는 표준적인 방법..
자바에서 변수는 객체 타입을 가지는 경우 객체에 대한 참조를 가진다. 객체의 필드의 경우에도 마찬가지여서 필드가 다른 객체 타입을 가질 때는 객체 안에 그 참조를 가지는 메모리가 잡힌다. 즉 그 객체 안에는 참조만 들어있고 참조가 다른 곳에 있는 객체를 가리킨다. 이러한 객체들은 모두 new 되어 힙메모리 어딘가에 자리잡고 있을 것이다. 다음 그림은 학생 클래스의 객체 예를 보여준다. 학생이 학번, 이름, 학년, 학과, 점수배열을 가지고 있다고 해 보자. 여기서 int 타입의 학번과 학년은 객체 안에 해당 필드가 값을 가진다. (값 필드) 그러나 String이나 배열 타입의 객체 필드는 참조만 가진다. 이 참조는 어딘가에 있는 스트링 객체나 배열 객체를 가리킬 것이다. 처음에 객체가 new로 생성되었을 ..
- Total
- Today
- Yesterday
- ToString
- 이터러블
- CompareTo
- 스트링
- 자바regex
- Iterator
- C++ 클래스
- 스트링 +
- Lazy evaluation
- Camel Style
- comparable
- APPEND
- python exercise
- 패턴
- typedef
- follow
- zip
- 지연계산
- sort key
- 이터레이터
- 콜렉션
- max
- TypeError
- python example
- rust
- contentEquals
- indexof
- format
- contains
- 동적바인딩
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |