캡슐화란 객체의 필드,메서드를 하나로 묶고, 실제구현내용을 감추는 것을 말한다. 외부 객체는 객체내부의 구조를 알지 못하며 객체가 노출해서 제공하는 필드와 메서드만 이용할 수 있다. 은닉된 정보 + 정보의 접근 통로를 메서드로 만듬 = 캡슐화이다. 접근제어자를 통한 데이터 보안이다. 캡슐화를 위해서는 테이터와 기능을 하나라 묶기때문에 데이터(정보)를 은닉할 수 있어야한다. 정보를 은닉하기 위한 방법은 public, private 등의 접근제어자를 사용한다. 접근제어자 private 외부에 노출되면 안되는 정보들을 정보은닉시키고 그것을 도와주는 접근제어자이다. 자신의 클래스에서 접근가능(다른클래스 접근불가) public 클래스가 public 접근제한을 가지게 되면 같은 패키지뿐만 아니라 다른 패키지에서도 ..
java
static 을 사용하는 것과 사용하지 않았을 때를 비교하면서 알아보도록 하겠다. 인스턴스 변수 & 인스턴스 메소드 우선 static 이 붙지 않으면 변수일때는 인스턴스변수, 메소드일때는 인스턴스 메소드라고 한다. 객체가 생성되었을 때 사용 가능하다. 객체참조변수. 으로 사용한다. 인스턴스변수에 대해서는 이전에 공부하였던 게시물을 참고하도록 하겠다. https://float.tistory.com/61 java_5_ 클래스 구성 (필드 , 메소드) 클래스에는 객체가 가져야 할 구성멤버가 선언된다. 구성멤버에는 필드 , 생성자, 메소드가 있다. 필드 객체의 고유 데이터, 객체가 가져야할 부품, 객체의 현재 상태 데이터를 저장하는 곳이다. float.tistory.com static 변수 1. 매개변수 앞에 ..
생성자 객체 생성시에 자동을 호출되는 메소드이다. new 연산자와 같이 사용되어 클래스로부터 객체를 생성할 때 호출되어 객체의 초기화를 담당한다. new 연산자는 힙영역에 객체를 생성되고 객체의 주소가 리턴된다. 리턴된 객체의 주소는 클래스 타입 변수에 저장되어 객체에 접근할 때 이용된다. Void A() { } 리턴 타입이 있을 시에 생성자가 될 수 없다. 기본 메소드이다. 기본생성자 (default constructor) 컴파일시에 생성자가 없으면 매개변수 없는 생성자를 자동 포함시킨다. 클래스이름() {} A() {} 기본생성자는 항상 만들어주는 것을 장려한다. 컴파일러가 자동생성하는 것으로 의지할 수 있지만, 제대로된 클래스라면 기본 클래스를 만들어 준다. 자동으로 생성 = 클래스에 생성자를 선언..
클래스에는 객체가 가져야 할 구성멤버가 선언된다. 구성멤버에는 필드 , 생성자, 메소드가 있다. 필드 객체의 고유 데이터, 객체가 가져야할 부품, 객체의 현재 상태 데이터를 저장하는 곳이다. 자동차 객체를 예를 들어보면 제작회사, 모델, 색깔, 최고 속도는 고유 데이터에 해당하고, 현재 속도, 엔진 회전 수는 상태데이터에 해당한다. 그리고 차체, 엔진,타이어는 부품에 해당한다. 이름은 명사로 만든다. 자동차 객체(객체모델링 ) 자동차 클래스 (클래스구현) 필드 사용 위 그림을 보면 Car클래스의 speed필드는 생성자와 메소드에서 변경이 가능하다. 사용방법은 변수와 동일한데, 차이점은 변수는 자신이 선언된 생성자 또는 메소드 블록 내부에서만 사용할 수 있는 반면 필드는 생성자와 모든 메소드에서 사용이 가..
선택정렬 Selection Sort 정렬되지 않은 데이터들에 대해 가장 작은 데이터를 찾아 정렬되지 않은 부분의 가장 앞의 데이터와 교환해 나아가는 알고리즘이다. O(n2) 의 시간복잡도가 있다. package Sort; public class SelectionSortTest { private static void selectionSort(int[] arr) { selectionSort(arr, 0); //시작점 } private static void selectionSort(int[] arr, int start) { if(start < arr.length - 1) { //시작점이 배열의 마지막보다 작은동안 재귀함수호출 int min_index = start; //가장 작은 인덱스를 저장할 for ( i..
사번, 사원명, 급여에 대한 값을 나타내시오 package exOop; public class HR { public static void main(String[] args) { Employee e1 = new Employee(); //클래스 생성 e1.setNo("21001"); e1.setName("철수"); e1.setSalary(500); e1.printInfo(); } } new 키워드를 만나면 힙(heap)의 동적인 메모리 공간을 할당받는다. 할당받은 내용 Employee() 는 할당된 힙(heap) 메모리공간을 아래의 Employee 클래스의 내용으로 채운다. e1으로 Employee 값을 대입하고 매개변수 값을 넣고 반환한다. package exOop; public class Employee..
객체란 ? 객체란 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지고 있고 다른 것과 식별가능한 것을 말한다. 물리적으로 존재하는 자동차, 자전거, 학과, 강의, 주문 등이 모두 객체가 될 수 있다. 객체는 속성과 동작으로 구성되어 있다. 객체의 상호작용 객체들은 각각 독립적으로 존재하고, 다른 객체와 서로 상호작용 하면서 동작한다. 객체들 사이의 상호작용 수단은 메소드이다. 메소드는 기능이며 절차지향에서는 함수라 하며, 객체지향에서는 메소드라고 부른다. 메소드 호출 객체에 도트(.) 연산자를 붙이고 메소드 이름을 기술하면 된다. 도트 연산자는 객체의 필드와 메소드에 접근할 때 사용한다. 리턴값 = 전자계산기객체.메소드(매개값1, 매개값2); 클래스 클래스를 선언한 후 객체를..
배열이란 배열은 같은 타입의 데이터(변수)를 연속된 공간에 나열시키고, 각 데이터에 인덱스(index)를 부여해 놓은 자료구조이다. 배열 선언 배열을 사용하기 위해서는 배열 변수를 선언해야 한다. 다음과 같이 두가지 형태로 작성할 수 있다. 타입[] 변수; 타입 변수[]; 배열이름.length 대괄호 [ ]는 배열 변수를 선언하는 기호로 사용되는데, 타입 뒤에 붙을 수도 있고 변수 뒤에 붙을 수 있다. 타입은 배열에 저장될 데이터의 타입을 말한다. 다음은 각 타입별로 배열을 선언하는 예시이다. int[] intArry; double[] doubleArray; String[] strArray; 배열 변수는 참조 변수에 속한다. 배열도 객체이므로 힙 영역에 생성되고 배열 변수는 힙 영역의 배열 객체를 참조하..