일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- snmp test
- gcc regex
- 정규식 컴파일
- InfluxDB
- semanage
- grafana dashboard
- influxdb 설치
- g++ 업데이트
- python os
- centos pyhon 설치
- python popen
- 1697
- selinux port 등록
- c++ 정규식
- linux시간으로 변경
- CentOS7
- regex_search
- c3 축 가리기
- 백준
- python subprocess
- snmp
- telegraf
- c3 second
- c3 초
- 정규식 활용
- c3 축 없애기
- subporcess path
- c3 step graph
- 정규식 문자열 출력
- gcc 업데이트
- Today
- Total
목록분류 전체보기 (560)
리셋 되지 말자
package reference; public class CallByReference { public static void main(String[] args) { Animal ref_a = new Animal(); Animal ref_b = ref_a; ref_a.age = 10; ref_b.age = 20; System.out.println(ref_a.age); // 20 System.out.println(ref_b.age); // 20 } } class Animal { public int age; } 결과 20 20 T메모리 ref_a와 ref_b가 가지는 값은 :Animal의 주솟값이다. Call by value와 Call by reference의 차이는 변수가 가지고 있는 값을 '값 자체&..
접근 제어자 자바에서 정보 은닉(information hiding)이라고 하면 접근 제어자인 private, [default], protected, public이 생각난다. 이 외에 접근자 및 설정자 메서드도 생각이 날 수 있다. 접근 제어자가 객체 멤버(인스턴스 멤버)와 쓰일 때와 정적 멤버(클래스 멤버)와 함께 쓰일때를 비교해본다. 객체 멤버의 접근 제어자 아래와 같이 패키지와 클래스가 있다고 가정하자 자신의 멤버가 아닌 다른 객체의 멤버에 접근하는 경우에는 다른 객체를 생성한 후 접근해야 한다. UML 표기법에서 - 표시는 private 접근 제어자, ~ 표시는 [default], # 표시는 protected, + 표시는 public 접근 제어자를 나타낸다. 속성이나 메서드 아래에 _(밑줄)을 사용..
객체 지향에서 다향성이라고 하면 오버라이딩(overriding)과 오버로딩(overloading) 이라고 할 수 있다. -> 상위 클래스와 하위 클래스 사이에서도 다형성을 이야기할 수 있고, 인터페이스와 그것의 구현 클래스 사이에서도 다형성을 이야기할 수 있지만 가장 기본은 오버라이딩과 오버 로딩이라고 할 수 있다. (참고 : 오버로딩이 다형성인지 아닌지에 대해서는 이견이 있다.) 오버 라이딩과 오버 로딩 오버 라이딩 : 상위 클래스의 메서드를 '재정의' 오버 로딩 : 상위 클래스의 메서드를 인자 리스트를 다르게 하여 '중복정의' Animal package polymorphism01; public class Animal { public String name; public void showName() { ..
상속과 T 메모리를 알아보기 위한 예제 Amimal package inheritance03; public class Animal { public String name; public void showName() { System.out.printf("안녕 나는 %s야. 반가워\n", name); } } Penguin package inheritance03; public class Penguin extends Animal{ public String habitat; public void showHabitat() { System.out.printf("%s는 %s에 살아\n", name, habitat); } } main package inheritance03; public class Main01 { public ..
자바의 다중 상속 자바는 다중 상속을 지원하지 않는다. 왜? C++를 계승/발전/단순화하면서 다중 상속을 빼버린 이유는 다음과 같다. 위와 같이 사람과 물고기를 상속받은 인어라는 클래스에서 '수영하다'라는 메서드가 실행되면 사람 클래스의 수영메서드를 수행할지, 물고기 클래스의 수영메서드를 수행할지 정하기가 애매하다. 이와 같은 문제를 '다중 상속의 다이아몬드 문제'라고 한다. 결국 다중상속은 득실 관계에서 실이 더 많았기에 자바와 C#에서는 다중 상속을 포기했다. 대신 자바에서는 C++에는 없는 '인터페이스'를 도입해 다중 상속의 득은 취하고 실은 과감히 버렸다. 상속과 인터페이스 상속 관계가 is a kind of 관계라고 앞 절에서 언급하였다. 해석과 예제를..
상속 : 재사용 + 확장 객체 지향에서의 상속은 '상속'이 아닌 '재사용과 확장'으로 이해해야 한다. 객체 지향에서의 상속 상위 클래스의 특성을 하위 클래스에서 상속(특성 상속)하고 거기에 더해 필요한 특성을 추가, 즉 확장해서 사용할 수 있다는 의미이다. 이를 고려하여 앞으로는 부모 클래스, 자식 클래스로 부르기보다는 상위 클래스, 하위 클래스 또는 슈퍼 클래스, 서브 ㅡㄹ래스라고 표현하기로 한다. 상위 클래스로 갈수록 추상화, 일반화 되었다고 하며 하위 클래스로 갈수록 구체화, 특수화 됐다고 말한다. 상속 관계에서 반드시 만족해야 하는 문장 하위 클래스는 상위 클래스다. -> 포유류는 동물이다. -> 고래는 포유류다. -> 고래는 동물이다. 나중에 학습할 객체 지향 설계 ..
클래스와 객체를 간단히 구분하는 법은 '질문'을 하는것이다. -> 생물인 경우 "나이가 어떻게 되세요?" -> 무생물인 경우 "제조일자가 어떻게 되나요?" 객체는 유일무이하게 존재하는 실체이기 때문에 속성에 값을 가지고 있고, 클래스는 개념이면서 분류 체계일 뿐이므로 속성에 값을 가질 수 없다. 그런데 아래와 같은 경우가 있다. 미키마우스의 꼬리의 개수는? 제리의 꼬리의 개수는? 쥐의 꼬리의 개수는? 위의 세 질문에 대한 답은 '한 개'이다. 미키마우스, 제리는 객체이므로 답이 있는게 당연하다. 그런데 쥐는 클래스 임에도 답이 있다. 꼬리 개수는 객체의 속성이지만 모든 객체가 같은 값을 가지고 있기에 클래스를 통해 질문해도 갯수가 한개이다. 이런 경우를 T 메모리에서 살펴보면..
코드를 논리적인 단위로 구분하고 분할하는 구조적 프로그래밍의 '함수' -> '객체 지향' 객체 지향을 이해하기 위한 큰 그림 세상에 존재하는 모든 것은 사물, 즉 객체(object)이다. 각각의 사물은 고유하다.(먼소리지?) 사물은 속성을 갖는다. 사물은 행위를 한다. 사물을 하나하나 이해하기보다는 사물을 분류(class)해서 이해하는 인간의 인지법 직립보행을 하며 말을 하는 존재를 사람이라고 분류한다. 연미복, 짧은 다리, 날지 못하는 새를 펭귄이라고 분류한다. 밤하늘에 반짝이는 사물들을 별이라고 분류한다. 클래스, 객체, 속성, 메서드 간단 예시 Class 명 사람 홍길동 속성들 나이, 몸무게, 키 나이:19, 몸무게:80, 키:180 행위들 먹다, 자다 먹다, 자다 객체지향의 4대 특성 캡슐화(En..