공부 136

오버로딩과 오버로딩의 한계

Over loading = 과적재 클래스는 상태와 행위를 가질 수 있다. 이때 어떤 클래스가 행위(메서드)를 가지고 있는데 이름이 똑같은 행위(메서드)를 가지고 있다 하더라도 매개변수가 다르다면 같은 이름의 행위(메서드)를 선택적으로 사용하도록 허락해주는 기법이다. 그럼 오버로딩된 메서드를 호출을 할 때 상황에 따라서 유연하게 매개변수를 입력해 줄 수 있다. 왜 오버로딩이 객체지향에서 중요한 문법이냐면?! 사실 저렇게 하지 않고도 메서드를 하나 더 만들면 된다 하지만 왜 오버 로딩이란 것이 탄생하게 됐고 이 오버 로딩의 한계는 무엇일까? 오버 로딩의 한계 자 다음과 같은 프로그램을 만들었다. 위 프로그램의 단점이 무엇일까? 첫 번째로 자유도가 떨어진다. 전사는 궁수만 공격할 수 있고 궁수는 광전사만공격할..

JAVA,객체지향 2021.11.25

다형성

다형성의 사전적 의미는 다음과 같습니다. 좀 더 쉽게 설명을 하자면 홍길동이라는 가상의 인물의 직업이 요리사이다. 그럼 이 홍길동이란 인물을 java세상에 만들어 본다면 홍길동 클래스가 요리사라는 클래스를 상속한다. 이 둘이 상속이 가능한 이유는 홍길동 보고 요리사라고 물어보면 "네"라고 할 수 있고 요리사 보고 홍길동이니? 해도 "네"라고 할 수 있다. 즉 홍길동은 다양한 형태를 가지고 있는 것이다(다형성) 홍길동 extends 요리사 그럼 홍길동을 메모리에 올리고 싶어서 new 홍길동(); 을 하게 되면 메모리에 요리사와 홍길동이 같이 올라온다. 하지만 new요리사();로 요리사로 띄우게 되면 메모리에는 요리사만 올라온다. 위 그림처럼 new홍길동();하면 메모리에 홍길동 요리사가 뜨기때문에 new홍..

JAVA,객체지향 2021.11.21

클래스만들기/생성자/this

패키지는. java파일의 모임이다. 1. 디폴트 접근제어자(아무 접근제어자도 명시돼 있지 않을 때) = 동일한 패키지에서만 접근 가능 2. public 접근 제어자 = 모든 곳에서 접근할 수 있다. 3. private 접근 제어자 = 동일한 클래스에서만 접근 가능 4.protected 접근제어자 = 패키지 내의 클래스 또는 해당 클래스를 상속받은 외부 패키지의 클래스에서 접근 가능 클래스 = class = 설계도 class= 설계도 이기 때문에 강아지 클래스를 만들어보는데 이때 강아지의 종류인 type필드는 변경해서는 안되기 때문에 final이라는 키워드를 사용해서 변경할 수 없도록 해주었다. 하지만 클래스에서 필드를 저렇게 초기화시켜 줘 버리면 해당 클래스는 위와 같은 특징을 가진 강아지 한 마리만 만..

JAVA,객체지향 2021.11.20

자료형이란?

자료형이란? 물건을 저장하기 위해 창고를 설계한다고 가정해 보자 그럼 마구잡이로 넣을 수 없으니 정리를 위해서 포장을 해야 한다. 포장을 할 때 사과라는 물건을 저장하는데 창고 2칸에 6개가 딱 맞고 딸기라는 물건을 저장하는데 창고 4칸에 10개가 들어가야 딱 맞게 저장이 된다 그럼 포장에 단위를 알 수 있다. 그럼 이제 창고에 들어올 물건의 양을 알아야 한다. 그래야 그 양에 맞춰서 창고에 칸을 마련해 놓을 수 있기 때문이다. java도 마찬가지다 자바도 프로그램을 시키려면 창고 설계가 필요하다고 생각하면 된다. java에서 포장단위는 8가지 타입으로 이미 정해져 있다. boolean = 1bit(bit는 포장단위) =2에 1승 = 2 = 참 or 거짓 int = 32bit =2에 32승 =42억 9천..

JAVA,객체지향 2021.11.18

Linux/process

process는 cpu에서 연속적으로 실행되고 있는 모든 프로그램이다. 포그라운드(fore ground) 프로세스 - 화면에 보이는 상태에서 동작하는 프로세스 ex) 대화형 프로세스 -> 시스템과 사용자가 서로 의사를 주고받으며 작업을 진행하는 프로세스 백그라운드(back ground) 프로세스 - 화면에 보이지 않는 상태에서 동작하는 프로세스 ex) 데몬(daemon) 프로세스 : 특정 서비스 실행을 위해서 백그라운드 상태에서 동작하는 서버 프로세스 - ps : 프로세스 확인 명령어 ps -ef : 모든 프로세스의 자세한 정보 표시 UID :해당 프로세스를 실행시키는 사용자 표시 PID :process id == PPID의 자식 프로세스 == CMD와 같은 의미 명령어를 입력하면 PID는 숫자로 표시 ..

LINUX 2021.11.13

Linux/root password 관리 &GRUB bootloader

GRUB bootloader 사용해서 관리자 비밀번호 관리 리눅스를 부팅을할때 다음과 같은 화면이 나온다. 위 화면을 GRUB bootloader화면이라고 얘기를 하는데 커널을 선택하는 화면이다. 리눅스는 엄밀히말하면 커널 이름이고 위선 택지가 그 커널을 선택하는 것이다. 보통 목록 가장 위에있는 버전이 최신 버전이다. e를 누르면 다음과 같이 시스템을 수정할 수 있다. ro -> rw로 변경 rhgd 부분까지 삭제 후 init=/bin/bash로 변경 다음과 같이 커널 라인을 편집해서 저장을 하면 안전모드(복구 모드)로 들어갈 수 있다. 안전모드로 들어가면 자동으로 root계정으로 로그인이 돼있고 관리자 계정의 비밀번호를 수정해 주었다. 그리고 exec /sbin/init 명령어로 재부팅할 수 있다. ..

LINUX 2021.11.13

JAVA/ 상속과 콤포지션

java에서 extend를 상속이라 표현하고 부모와 자식 관계로 표현하지만 그것은 좀 더 깊은 이해를 하는 대에 있어서 방해될 수 있는 것 같습니다. 이번 포스팅에서 extend를 '확장하다'의 개념으로 접근해서 포스팅해 보겠습니다. 위와 같은 자동차 프로그램을 만든다고 할때 위 그림과 같이 엔진이라는 라이브러리를 import 해서 자동차 프로그램에 사용하는 것을 상속이라 하지 않는다. import는 상태, 행위를 가져와서 사용하는 개념이다. 상속과 import가 다른 점은 상속은 추상화가 가능하고 상태와 행위를 물려 받을 수 있다. 위 두가지 상황을 예를 들어 설명을 하자면 자동차는 엔진을 가져와서 사용해야 한다. 왜냐하면 자동차= 엔진이라고 볼 수 없기 때문이다. 엔진과 자동차는 타입일치가 되지 않는..

JAVA,객체지향 2021.11.11

Linux/filesystem&mount(2) 파티션에 마운트걸기/logical partition만들기

파티션에 마운트 걸기 위 경우에서는 장치 하나에 여러 개의 mount point를 걸었다. 이렇게 해도 상관없음. 하지만 결과적으로 같은 장치에 연결이 돼 있기 때문에 test 1에서 작업을 한 결과가 test2에도 똑같이 나타난다. 그렇기 때문에 한 개의 파티션은 한 게의 mount point 만 가지도록 한다. logical partition에 mount point 만들기 logical partition은 extended partition이 있어야 만들 수 있기 때문에 extended partition부터 만들어야 한다. fdisk /dev/[디스크명] extended부터 만들어 놓고 다시 n을 눌러서 파티션을 나눠 보면 다음과 같이 logical을 만들 수 있게 돼 있다. 그럼 저장하고 나와서 fo..

LINUX 2021.11.11

Linux/filesystem& mount (1) /하드디스크 추가하기

HDD & partition HDD를 논리적으로 분할해서 쓰는 개념이 partition이다. 윈도에서는 흔히 c드라이브 d드라이브를 나누는 게 partition이다. linux partition 종류 1. primary partition - 주 영역 파티션(os영역 설치가 가능한 파티션) - 최대 4개까지만 생성 가능 2. extended partition - 확장 영역 파티션, 1개만 생성 가능 - 실제로 사용하는 파티션이 아니라 logical partition을 만들기 위한 틀 같은 파티션이다 - extended partition을 삭제하면 내부에 logical partition의 개수에 상관없이 전부 삭제된다. 3. logical partition - 논리 영역 파티션 - 꼭 extended par..

LINUX 2021.11.10

java/라이브러리 만들기

라이브러리 = 도서관 예를 들어 김치찌개를 만든다고 가정을 해보자 이때 라이브러리가 있으면 김치찌개를 상상해서 만들 필요가 없다. 도서관에 있는 김치찌개 만들기 서적을 보면 되기 때문! 그걸 JAVA에 빛대어 보면 이 김치찌개 만들기 서적을 들고 와서 보는 것이 import가 되는 것이다. 라이브러리 만들기 위와 같은 자바 project를 만들고 위와같은 클래스를 만든다 이 김치찌개 레시피를 라이브러리로 만들어 보자 JAR 위 사진 속 화살표에 JAR file과 Runnable JAR file이 있다 이 둘의 차이점 패키지는 '. java'파일의 모임이다. 이보다 좀 더 큰 개념이 jar이다 jar는 패키지의 모임이다. java 파일을 포맷하는 java achaive(아카이브) 파일이다. 즉 여러 패키지..

JAVA,객체지향 2021.11.09