본문 바로가기

Web Development/Java

[Java] 객체지향개념5 제어자(modifier)? 1. 제어자란 -클래스, 변수, 메서드의 선언부에 사용되어 부가적인 의미를 부여 ▶ 접근제어자: public, protected, (default), private ▶ 그외: static, final, abstract, native, trasient, synchronized, volatile, strictfp -하나의 대상에 여러개의 제어자를 조합해서 사용할 수 있으나 접근제어자는 단 하나만 사용 가능 2. static - 클래스의, 공통적인 static이 사용될 수 있는 곳: 멤버변수, 메서드, 초기화 블럭 ▶ 멤버변수에 사용될 때 -모든 인스턴스에 공통적으로 사용되는 클래스변수가 됨 -클래스변수는 인스턴스를 생성하지 않고도 사용 가능 -클래스가 메모리에 로드될 때 생성됨 ▶.. 더보기
[Java] 객체지향개념4 상속? 1. 상속 -기존의 클래스를 재사용해서 새로운 클래스를 작성하는 것 -두 클래스를 조상과 자손으로 관계를 맺어주는 것 -자손은 조상의 모든 멤버를 상속받음 (생성자, 초기화블럭 제외) -> 골라서 받을 수 없음 -각 클래스의 생성자에는 자신에 정의된 멤버변수만을 초기화하는 코드 + 조상의 생성자를 호출하는 코드를 넣음 -자손의 멤버 개수는 조상보다 무조건 같거나 많음 class 자손클래스 extends 조상클래스 { // ... } 2. 1)클래스간의 관계 - 상속관계 -공통부분은 조상에서 관리하고 개별부분은 자손에서 관리하는 것이 좋음 -조상의 변경은 자손에 영향을 미치지만 자손의 변경은 조상에 아무런 영향 안미침 2)클래스간의 관계 - 포함관계 -포함이란 한 클래스의 멤버변수로 다른 클래스를 .. 더보기
[Java] 캡슐화, TDA 원칙 자바의 정석 기초편 강의를 수강하던 중.. 캡슐화의 개념이 잘 이해가 안갔다. 캡슐화는 객체지향프로그래밍의 중요한 특성중 하나다. 자바의 정석 강의자료에 따르면, 캡슐화 - 접근제어자를 이용해서 멤버변수들은 private으로 해서 내부에 감추고 메서드들은 public으로 해서 외부에 노출시킴으로써 같은 클래스에 정의된 멤버들끼리는 서로 자유롭게 접근하고 외부에서는 메서드를 통해서만 멤버변수에 접근할 수 있는 구조로 만드는 것. - 외부에서는 객체의 노출된 public 메서드만을 호출할 수만 있을 뿐 실제 내부가 어떻게 되어 있는지 알 수 없음. 나의 의문은 이걸 왜 캡슐화라고 부르냐는 것. 그래서 캡슐화의 개념을 좀 더 찾아봤다. 캡슐화: 데이터와 메서드를 하나의 단위로 묶어 외부에서 직접 접근하지 못하.. 더보기
[Java] 객체지향개념3 생성자? 1. 생성자란? -인스턴스가 생성될 때마다 호출되는 '인스턴스 초기화 메서드' -인스턴스 변수의 초기화 또는 인스턴스 생성시 수행할 작업에 사용 -몇가지 조건을 제외하고는 메서드와 같음 -모든 클래스에는 반드시 하나 이상의 생성자가 있어야 함 *인스턴스 초기화: 인스턴스 변수에 적절한 값을 저장하는 것 Card c = new Card(); 코드가 실행될 때 (1) 참조변수 c가 선언됨 (2) 연산자 new에 의해서 Card 인스턴스가 생성됨 (3) 생성자 Card()가 호출되어 생성된 인스턴스의 초기화를 수행 (인스턴스의 생성은 생성자가 호출되기 이전 연산자 new에 의해 수행됨 생성자의 목적은 new 연산자에 의해 생성된 인스턴스의 인스턴스변수에 적절한 값을 저장하는 것) (4) new의 결과.. 더보기
[Java] 객체지향개념2 변수와 메서드? 1. 선언위치에 따른 변수의 종류 ▶ 인스턴스 변수 -각 인스턴스의 개별적인 저장공간 -인스턴스 생성 후 '참조변수.인스턴스변수명'으로 접근 -인스턴스를 생성할 때 생성되고 참조변수가 없을 때 가비지컬렉터에 의해 자동 제거됨 ▶ 클래스 변수 -같은 클래스의 모든 인스턴스들이 공유하는 저장공 -인스턴스 생성없이 '클래스이름.클래스변수명'으로 접근 -클래스가 로딩될 때 생성되고 프로그램이 종료될 때 소멸 ▶ 지역변수 -메서드 내에 선언되며 메서드의 종료와 함께 소멸 -조건문, 반복문의 블럭{} 내에 선언된 지역변수는 블럭을 벗어나면 소멸 *클래스변수와 인스턴스변수 사용 기준? 모든 객체가 공통적으로 가져야하는 특성의 경우 static을 붙여 클래스 변수로 선언 2. 메서드 ▶ 메서드란? -작.. 더보기
[Java] 객체지향개념1 객체지향언어? 1. 객체지향언어의 역사 절차방식의 프로그래밍 언어를 객체지향방식으로 극복하려고 탄생. = (기존의 절차지향적) 프로그래밍 언어 + 객체지향개념 2. 객체지향언어의 특징 ▶ 기존의 프로그래밍 언어 + 몇가지 규칙 추가된 형태 ▶ 코드의 재사용성이 높음 ▶ 코드의 관리가 쉬움 ▶ 신뢰성이 높은 프로그램의 개발을 가능하게 함 -> 코드의 중복, 코드의 불일치를 줄임. 재사용성이 높고 유지보수가 용이하다는 것이 가장 큰 장점 클래스와 객체? 1. 클래스와 객체의 정의와 용도 (1) 클래스 : 클래스란 객체를 정의해 높은 것 ▶ 객체를 생성하는 데에 사용됨 e.g. 제품 설계도, TV 설계도 (2) 객체 : 실제로 존재하는 것. 사물 또는 개념. ▶ 객체의 속성과 기능에 따라 다른 용도 e.g. .. 더보기
[Java] 변수 타입간의 변환 방법 1. 문자(char) 숫자(number)간의 변환 숫자를 문자로 변경하려면 문자 '0'을 더하고 빼면, 숫자를 문자로, 문자를 숫자로 변환가능하다. 2. 숫자 --> 문자열로의 변환 3 또는 '3' 에다가 + "" = 빈문자열을 더해주면 "3"으로 변환된다. 3. 문자열 --> 숫자로 변환 Integer.parseInt("3"); Double.parseDouble("3.4") 4. 문자열 --> 문자로 변환 "3" > '3' "3".charAt(0) = 결과값 문자 '3' -참조 자바의 정석 더보기
[Java] 기본형 변수의 종류와 크기 1 Byte 2 Byte 3 Byte 4 Byte 논리형 boolean 문자형 char 정수형 byte short int long 실수형 float double 1Byte = 8bit 비트(bit)는 2진수로서 0또는 1의 값을 가짐. 컴퓨터는 일반적으로 8개 단위의 비트(8bit)를 하나의 그룹으로 사용하고 이를 바이트(Byte)라 함. 즉, 1바이트는 8개의 on/off 상태를 조합하여 나타낼수 있는 수는 총 256 (2^8)개가 되기 때문에 1바이트(Byte)는 0 부터 255 까지 값을 가질수 있게 됨. n비트로 표현할 수 있는 값의 개수: 2^n개 n비트로 표현할 수 있는 부호 없는 정수의 범위: 0~(2^n)-1 n비트로 표현할 수 있는 부호 있는 정수의 범위: -(2^n-1)~(2^n-1)-.. 더보기