일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- Do it! 자바스크립트 입문
- 공부
- Oracle
- 타입스크립트
- 공부단
- TypeScript
- Python
- Do it! 공부단
- 운영체제
- 단계별로 풀어보기
- html
- do it!
- 백준
- Java
- nodejs
- 자바스크립트
- 백엔드 개발
- SQL
- Do it 공부단
- JavaScript
- 형변환
- 자바
- 노드제이에스
- 배열
- 파이썬
- 입출력과 사칙연산
- 상속
- 변수
- 다형성
- Node.js
- Today
- Total
목록Java (56)
성준이의 공부블로그

싱글톤 패턴이란? 프로그램에서 인스턴스가 단 한 개만 생성되어야 하는 경우 사용하는 디자인 패턴입니다. static 변수, 메서드를 활용하여 구현 할 수 있습니다. 싱글톤 패턴으로 회사 객체 구현하기 생성자는 private로 선언합니다. Company.java public class Company { private static Company instance = new Company(); private Company() { } // static으로 선언해야지 외부에서 클래스 이름으로 호출할 수 있다 public static Company getInstance() { if (instance == null) { instance = new Company(); } return instance; } } Compan..

static메서드 만들기 변수를 private으로 선언하고 getter/setter 구현합니다. getter / setter는 이클립스에서 코드에 마우스 우클릭을 하고 Source -> Generate Getter and Setters... 를 클릭하면 생성할 수 있습니다. Employee.java public class Employee { private static int serialNum = 1000; private int employeeId; private String employeeName; private String department; // 객체가 생성될 때 초기화 작업은 생성자에서 해준다 public Employee() { serialNum++; // 이 변수는 공유x. // 이 변수를 바로..

여러 인스턴스에서 공통으로 사용하는 변수 선언 - static 변수 공통으로 사용하는 변수가 필요한 경우 여러 인스턴스가 공유하는 기준 값이 필요한 경우 학생마다 새로운 학번 생성 카드회사에서 카드를 새로 발급할 때마다 새로운 카드 번호를 부여 회사에 사원이 입사할 때마다 새로운 사번이 필요 static 변수 선언과 사용하기 static int serialNum; 인스턴스가 생성될 때 만들어지는 변수가 아닌, 처음 프로그램이 메모리에 로딩될 때 데이터 영역에 메모리가 할당되고 프로그램이 다 끝나고 메모리에서 unload 되는 순간에 소멸됩니다. 클래스 변수, 정적 변수라고도 합니다.(vs 인스턴스 변수) 인스턴스 생성과 상관없이 사용 가능하므로 클래스 이름으로 직접 참조합니다. Student.serial..

인스턴스 자신의 메모리를 가리킵니다. 생성자에서 또 다른 생성자를 호출할 때 사용합니다. 자신의 주소(창조 값)를 반환합니다. 생성된 인스턴스 메모리의 주소를 가짐 클래스 내에서 참조 변수가 가지는 주소 값과 동일한 주소 값을 가지는 키워드입니다. public void setYear(int year) { this.year = year; } 생성자에서 다른 생성자를 호출하는 this 클래스에 생성자가 여러 개인 경우, this를 이용하여 생성자에서 다른 생성자를 호출할 수 있습니다. 생성자에서 다른 생성자를 호출하는 경우, 인스턴스의 생성이 완전하지 않은 상태이므로 this() statement 이전에 다른 statement를 쓸 수 없습니다. Person.java public class Person { ..

정보은닉 private으로 제어한 멤버 변수도 public메서드가 제공되면 접근 가능하지만 변수가 public으로 공개되었을 때보다 private일 때 각 변수에 대한 제한을 public메서드에서 제어할 수 있습니다. BirthDay.java public class BirthDay { private int day; private int month; private int year; //public 이나 접근제어지시자 없이 사용하는 것처럼 다 오픈해서 사용하면 //멤버변수의 잘못된 사용으로 객체가 잘못 사용되는 것을 노출하게 되고 // 객체의 어떤 역할에대해서 문제가 생길 수 있다. //그래서 private로 막고 메서드에서 제어를 해주게 되면 쓸데없는 데이터 오용이 막아진다. private boolean ..

클래스 외부에서 클래스의 멤버 변수, 메서드, 생성자를 사용할 수 있는지 여부를 지정하는 키워드입니다. 접근제어지시자 설명 private 같은 클래스 내부에서만 접근 가능합니다. (외부 클래스, 상속관계의 클래스에서도 접근 불가) 아무것도 없음(default) 같은 패키지 내부에서만 접근 가능합니다. (상속관계라도 패키지가 다르면 불가) protected 같은 패키지나 상속관계의 클래스에서 접근 가능하고 그 외 외부에서는 접근 할 수 없습니다. public 클래스의 외부 어디서나 접근할 수 있습니다. get() /set() 메서드 private으로 선언된 멤버 변수(필드)에 대해 접근, 수정할 수 있는 메서드를 public으로 제공합니다. get() 메서드만 제공되는 경우 read-only 필드 이클립스..

참조 자료형 변수의 자료형 기본 자료형 : int, float, double, long 등 참조 자료형 : String, Date Student 등 클래스 형으로 변수를 선언합니다. 기본 자료형은 사용하는 메모리 크기가 정해져 있지만, 참조 자료형은 클래스에 따라 다릅니다. 참조 자료형을 사용 할때는 해당 변수에 대해 생성하여야 합니다. String 클래스는 예외적으로 생성하지 않고 사용할 수 있습니다. 참조 자료형 정의하여 사용하기 Student.java public class Student { int studentId; String studentName; Subject korean; Subject math; public Student(int id, String name) { studentId = id..

인스턴스 클래스는 객체의 속성을 정의하고, 기능을 구현하여 만들어 놓은 코드 상태입니다. 실제 클래스 기반으로 생성된 객체(인스턴스)는 각각 다른 멤버 변수 값을 가지게 됩니다. 학생의 클래스에서 생성된 각각의 인스턴스는 각각 다른 이름, 학번, 학년 등의 값을 가지게 됩니다. new 키워드를 사용하여 인스턴스 생성할 수 있습니다. 힙 메모리 생성된 인스턴스는 동적 메모리(힙 메모리)에 할당됩니다. C나 C++에서는 사용한 동적 메모리를 프로그래머가 해제 시켜야합니다.(free(), delete()) Java에서 Gabage Collector가 주기적으로 사용하지 않는 메모리를 수거합니다. 하나의 클래스로 부터 여러 개의 인스턴스가 생성되고 각각 다른 메모리 주소를 가지게 됩니다. 용어 정리 용어 설명 ..

객체란? 실생활에서 우리가 인식할 수 있는 사물이라고 할 수 있습니다. 이러한 객체의 상태와 행동을 구체화하는 형태의 프로그래밍이 바로 객체 지향 프로그래밍입니다. 이때 객체를 만들어 내기 위한 설계도와 같은 개념을 클래스라고 합니다. 객체지향 프로그래밍 객체 정의를 합니다. 각 객체의 속성을 멤버 변수로 역할을 메서드로 구현합니다. 각 객체간의 협력을 구현합니다. 클래스 클래스는 객체를 정의하는 틀이나 설계도 같은 의미로 사용됩니다. 이러한 설계도인 클래스를 가지고, 여러 객체를 생성하여 사용하게 됩니다. 클래스는 객체의 상태를 나타내는 필드와 객체의 행동을 나타내는 메서드로 구성됩니다. 즉, 필드란 클래스에 포함된 변수를 의미합니다. public class Order { int orderId; Str..