목록✅🌲강의 복습 노트/패캠 JavaSpring 강의,코드 복습 (19)
컴퓨터공학 💻 도서관📚
배열 : 동일한 자료형의 순차적 자료 구조 배열에는 기본 자료형 배열과 객체 배열이 있다 인덱스 연산자[ ] 를 이용하여 빠른 참조가 가능 Arraylist 는 JavaUtil 패키지 안에서 제공되는 객체 배열을 구현해 놓은 클래스이다. 논리적 위치 : A옆에 B가 있다 물리적 위치 : 실제 메모리 상에서의 위치 배열은 논리적 위치와 물리적 위치가 동일하다 연결 리스트는 논리적 위치와 물리적 위치가 다르다 (연결 리스트는 다음 노드의 메모리 상에서의 위치가 바로 다음이 아니다 * 배열 선언하는 법int[] arr1 = new int[10]; // 둘 다 가능하지만 자료형인 int[]을 먼저 쓴다는 점에서 1번째가 더 직관적이다.int arr2[] = new int[10]; * 배열 초기화 하는 법 배..
public class CarFactory { private static CarFactory instance = new CarFactory(); private CarFactory() {} // 여기에는 static 쓰는거 아님 public static CarFactory getInstance() { if(instance == null) { instance = new CarFactory(); } return instance; } public Car createCar() { // 반환형은 Car 클래스 Car car = new Car(); // 여기에서 car 인스턴스 생성해준다 return car; }} carNum 은 Car 클래스의 멤버변수니까 serialNum..

싱글톤 패턴 : 프로그램에서 인스턴스가 단 한 개만 생성되어야 하는 경우 사용하는 디자인 패턴static 변수, static 메서드를 활용하여 구현 할 수 있다 디자인 패턴은 객체 지향 프로그램을 좀 더 효율적으로 할 수 있게 도와주는 여러가지 패턴으로 23가지 정도 된다 (수정, 유지보수 등을 더 쉽게 만들어준다) (나중에 공부해 보세요) 이중에 하나가 싱글톤 패턴이고 싱글톤 패턴은 static을 활용해서 만들 수 있는 패턴이다. 프로그래밍을 하다 보면 여러 개의 인스턴스가 존재하면 문제가 되는 상황이 있다 예를 들어, 날짜, 시간 등이 있다. 우리에게 대한민국의 그날 날짜와 시간은 모두 동일해야 한다이런 경우 싱글톤 패턴을 활용하여 객체를 정의한다 * 싱글톤 패턴 사용법 유일한 인스턴스를 클래스 내부..

* static 메서드 정의와 호출static 메서드(클래스 메서드)도 static 변수와 동일하게 클래스 이름으로 직접 호출한다 private static int serialNum = 1000;public static int getSerialNum() { // static 메서드 정의 return serialNum;}System.out.println(Employee.getSerialNum()); // static 메서드 호출 : 클래스 이름으로 호출 static 메서드에서는 인스턴스 변수를 사용할 수 없다. static 메서드는 인스턴스 생성 전에 호출될 수 있으므로 static 메서드 내부에서는 인스턴스 변수를 사용할 수 없다. 메서드가 호출됐을 때 이 메서드가 수행이 되려면 이 메서드 안..

같은 클래스에 서로 다른 인스턴스들이 있을 때, (ex. studentLee, studentKim) 클래스가 같은 인스턴스끼리 공유할 어떤 변수나 기준값이 필요한 경우 static 변수가 사용된다 모두가 가지고 있지만 안에 있는 정보는 다 다른 경우(학번, 사번, 카드번호 등등) ex. 회사원이 입사할 때마다 새로운 사번을 부여할 때 : 새로운 사원이 들어올 때마다 static를 변수를 증가시키고 이 값을 멤버변수에 복사를 해주면 된다// 위에 생략 public Employee(){ // 생성자 serialNum++; employeeId = serialNum; // 증가시킨 static변수를 멤버변수에 복사하기 } // 아래도 생략 static 변수는 언..

객체 지향 프로그램에서 객체 간에는 협력이 이루어진다협력을 위해서는 객체들끼리 매개변수를 통해서 필요한 정보를 주고 받는다매개변수로 객체를 전달하는 경우가 발생한다* 객체 협력의 예 MCMM : 멤버 변수 (객체 속성)C : 생성자 (입력 함수)M : 메서드 (협력, 계산, 출력함수)객체 간의 협력 --> 메서드에서 객체를 매개변수로 주고받는다 Main함수: studentJ , bus100 객체 인스턴스 생성후 studentJ.takeBus(bus100) --> Student객체: bus.take(1000) (이 코드의 bus는 매개변수 bus) --> Bus객체: take 함수 수행 public class Student { String studentName; //..

this가 하는 일1. 인스턴스 자기 자신의 메모리를 가리킴 ( ex. this.name = name; )2. 생성자에서 또 다른 생성자를 호출 할때 사용 (super 도 동일함) ( ex. this("이름없음", 1); )3. 자신의 주소(참조값) 자체를 반환할 때도 사용함 ( ex. return this; ) 함수나 메서드가 호출이 되면 그 함수와 메서드의 지역변수는 stack 메모리에 할당된다 객체를 new 키워드로 생성해서 생성된 인스턴스는 heap 메모리, 동적 메모리에 할당된다 2. 클래스에 생성자가 여러 개인 경우, this를 이용하여 생성자에서 다른 생성자를 호출할 수 있음 생성자에서 다른 생성자를 호출하는 경우, 인스턴스의 생성이 완전하지 않은 상태이므로 this..

캡슐화 : 캡슐화는 (1) 데이터(멤버변수)와 알고리즘(메서드)을 하나로 묶는 것이다 (1) 객체의 속성(data, fields)과 행위(메서드) 를 하나로 묶고, (2) 실제 구현 내용 일부를 내부에 감추어 은닉한다 캡슐화는 정보를 감싸서 외부에 꼭 필요한 정보만 오픈한다라는 개념이다 캡슐화는 여러가지 메서드 중 외부에서 사용할 꼭 필요한 메서드 한두 개만 오픈하고, 나머지는 자동으로 모든 것이 생산될 수 있도록 하는 용도로 사용할 수 있다 여러개의 메서드에 순서대로 지켜져야 되는 순서가 있고, 세세한 걸 클라이언트 코드 쪽에서 알 필요가 없다 대부분의 멤버 변수와 메서드는 감추고 외부에 통합된 인터페이스를 제공해서 클라이언트가 사용하기 쉽게 제공된 것만 사용하면 자동으로 다..