분류 전체보기

Language/Java

7-3 패키지

패키지 그렇게 중요해보이지 않은 파트이지만, classPath가 무엇인지, 어떻게 돌아가는지 어떤 용도인지에 대한 설명이 있고, 그걸 자세히 모르고 있었기 때문에 배우게 된 것도 많다. 패키지는 서로 관련된 클래스의 묶음이다. 따라서 사실 모든 클래스의 실제 이름은 패키지를 포함한 클래스 이름이다. 가령 String 클래스의 풀네임을 보면 java.lang.String 이라는 이름을 볼 수 있다. java8 버전 이하에서는 rt.jar이라는 압축 파일 내부에 java.lang 폴더 내부에 String.class가 있는 건데, jar 파일을 많이 봐왔지만, 여기서 깔끔하게 설명해준 것이 jar 압축 파일이 클래스 파일을 묶어 놓은 것이라고 한다. 이런 세세한 것도 모르고 있었다. 하지만 파일이 용량이 너무..

Language/Java

7-2 참조변수 super, 생성자 super()

참조변수 super, 생성자 super() 사실 객체지향언어의 대한 개념을 다시 제대로 잡아야겠다고 생각했던 포인트가 이 부분이다. 생성자가 어떤 원리로 어떻게 이루어지는데에 있어서 개념이 러프하다고 생각했고 정말 새로운 것들도 많이 알게되며 까먹었던 것들도 많이 있었다. 우선 참조변수 super와 생성자 super() 는 인스턴스 내에서 사용하던 this 참조변수와 this() 생성자와 같이 전혀 다르다는 걸 인지하고 들어가도록 하자. 참조변수 super 먼저 참조변수 super는 조상을 가리키는 참조 변수이다. 이것도 this와 동일하게 인스턴스 메서드(생성자 포함) 내에서만 사용이 가능하다. 예시를 한 번 살펴보자 class Parent { int x = 10;} class Child extends..

Language/Java

7-1 상속과 오버라이딩

상속 객체지향의 본격적인 특징이 나오는 파트이다. 가장 중요하기 때문에 확실하게 이해하고, 확실하게 넘어가도록 해보자. 객체지향언어의 특징에는 총 4가지가 있다. 캡슐화, 상속, 다형성, 추상화 이번 파트에서는 상속에 대해서 자세히 알아보자. 상속이란 기존의 클래스로 새로운 클래스를 작성하는 것이다. → 객체지향의 특징인 코드의 재사용을 가능하게 해준다. 또 다르게 말하자면 부모와 자식의 관계를 맺어주는 것인데 상속을 선언하는 법은 다음과 같다. class 자식클래스 extends 부모클래스 { } 위 처럼 작성하면 자식클래스는 부모클래스에 있는 멤버들을 상속받게 된다. 즉, 부모에 있는 멤버들을 자식도 쓸 수 있다는 것이다. 단, 여기서 주의해야 할 점은 생성자와 초기화 블럭은 상속이 안되니 주의해야 ..

Language/Java

6. 객체지향언어 1

클래스 클래스는 객체를 정의해놓은 공간이다. 즉, 클래스는 객체를 생성하기 위해서 사용한다. 클래스를 보통 설계도에 비유를 하고 객체를 제품에 비유를 한다. 클래스라는 설계도 안에 객체(제품)을 만들기 위해 여러가지를 선언해두고 클래스(설계도)로 객체를 생성하면 객체(제품)이 생성되는 것이다. 객체 그럼 객체는 무엇일까? 객체의 정의를 현실 세계에 많이 비유를 하곤 하는데, 객체란 실제로 존재하는 것, 사물 또는 개념이라고 한다. 위에서 객체를 제품에 비유했는데 제품마다 쓰이는 용도가 다른 것처럼 객체는 객체가 가지고 있는 기능과 속성에 따라 다르다. 기능은 메소드, 속성이 변수이다. class Tv { String color; boolean power; int channel; void power() {..

도서/기타

[독후감]모든 관계는 말투에서 시작된다.

최근 내 자신의 말투가 좋지 않다는 것을 깨닫고 모든 관계는 말투에서 시작된다 라는 책을 구매했다. 책을 다 읽을 때 까지 업데이트 할 것이고, 매일 20~30분 씩 투자해서 1장씩 읽을 계획이다. 먼저 서문에 '사람의 마음은 어떻게 움직이는가'에 대해서 예일대 심리학과 존 바그 교수의 '따뜻한 커피 효과' 에 대해서 예시로 시작했다. 면접관을 A 그룹과 B 그룹으로 나눠, A 그룹에게는 따뜻한 커피잔을, B 그룹에게는 차가운 커피잔을 2 ~ 3분 동안 들고 있게 했다. 결과 동일한 사람을 A 그룹과, B 그룹이 면접을 봤는데, A 그룹은 채용을 하겠다고 했고, B 그룹은 채용을 하지 않겠다고 한 예시이다. 너무나 사소해 간과하기 쉽지만, 모든 인간관계에 큰 영향을 미치는 것이 말투다. 로 시작한다. 말..

Language/Java

3. 연산자

연산자 연산자는 연산을 수행하는 기호이다. 연산자가 연산을 수행하기 위해서는 연산의 대상이 있어야 하는데, 이를 연산자와 피연산자로 나눌 수 있다. 연산자(operator) : 연산을 수행하는 기호 (X + 3) 에서 + 피연산자(operand) : 연산자의 작업 대상 (X + 3) 에서 X 와 3 그리고 식이란, 이 연산자와 피연산자의 조합이다. 연산자의 종류 종류 연산자 설명 산술 연산자 +, -, *, /, % , 사칙연산과 나머지 연산(%) 비교 연산자 >, 비교 > 논리 > 대입 단항(1) > 이항(2) > 삼항(3) 단항 연산자와, 대입 연산자를 제외한 모든 연산의 진행방향은 왼쪽에서 오른쪽이다. 결합규칙종류 결합규칙 연산자 우선순위 단항 연산자 *, /, % +, - > 비교 연산자 ㅡㅡㅡㅡ..

Language/Java

2. 변수

변수 프로그래밍 언어에서의 변수는 값을 저장할 수 있는 메모리 상의 공간 변수와 상수 변수의 초기화 변수는 사용하기 전에 반드시 초기화해야함, 클래스 변수와 인스턴스 변수는 초기화를 생략할 수 있지만, 지역 변수는 안됨 // 선언 케이스1 int a; int b; int x = 0; int y = 0; // 선언 케이스 2 int a, b; int x = 0, y = 0; 변수의 초기화란, 변수를 사용하기 전에 처음으로 값을 저장하는 것 변수의 명명 규칙 대소문자가 구분되며 길이에 제한이 없다. 예약어를 사용해서는 안된다. 숫자로 시작해서는 안된다. 특수문자는 _ $ 만 허용한다. 추가 권장 규칙 클래스 이름의 첫 글자는 항상 대문자 카멜 케이스 사용 상수가 여러 단어로 이루어질 경우 _ 사용 변수의 타..

Language/Java

1. 자바

자바 언어의 특징 운영체제에 독립적이다. 다른 언어들은 각 운영체제에 맞게 적용하기 위해서 많은 노력을 해야 했지만 CPU 내부적으로 사용하는 게 다르다. 기본적으로 x86, arm도 다른데 두 언어는 서로 다른 명령어 집합을 다르게 사용하기 때문에 다른 언어들은 그 언어에 맞게 이해할 수 있도록 바꿔주는 과정이 필요했던 것으로 예상이 된다. 하지만 자바에서는 JVM을 통해서 자바 자바 프로그램을 실행하기 때문에 JVM이 자바 응용프로그램으로 부터 전달받은 명령을 해당 운영체제가 이해할 수 있도록 변환하여 전달한다. JVM에서 예측 할 수 있듯이 VM은 Virtual Machine 의 약자이다. 그러나 JVM 자체는 운영체제에 종속적이기 때문에, 각 운영체제마다 다른 JVM 버전을 사용해야 한다. 객체지..

Bombo_
'분류 전체보기' 카테고리의 글 목록 (13 Page)