본문 바로가기
728x90

전체 글188

객체 자신을 가리키는 this this가 하는 일 인스턴스 자신의 메모리를 가리킴 생성자에서 또 다른 생성자를 호출할 때 사용 자신의 주소(참조값)을 반환 함 생성된 인스턴스 메모리의 주소를 가짐 클래스 내에서 참조변수가 가지는 주소값과 동일한 주소값을 가지는 키워드 생성자에서 다른 생성자를 호출하는 this 클래스에 생성자가 여러개인 경우, this를 이용하여 생성자에서 다른 생성자를 호출할 수 있음 public class Person { String name; int age; public Person() { this("이름없음",1); } Public Person(String name, int age) { this.name = name; this.age = age; } } 자신의 주소를 반환하는 this public class P.. 2023. 3. 14.
StringBuffer StringBuffer은 문자열을 추가하거나 변경할 때 주로 사용하는 자료형이다. 1. append append라는 메소드를 이용해서 계속해서 문자열을 추가해나갈 수 있다. toString() 메소드를 이용하면 String 자료형으로 변경할 수 있다. public class Test { public static void main(String[] args) { StringBuffer sb = new StringBuffer(); sb.append("hello"); sb.append(" "); sb.append("jump to java"); System.out.println(sb.toString()); } } 결과 : hello jump to java StringBuffer 자료형은 String 자료형보다 무.. 2023. 3. 14.
캡슐화(encapsulation) 정보 은닉을 활용한 캡슐화 외부에서 필요한 메소드 한두개만 오픈해서 나머지는 자동으로 생성될 수 있도록 사용할 수 있음. 외부에 꼭 필요한 정보만 오픈. 대부분의 멤버 변수와 메서드를 감추고 외부에 통합된 인터페이스만 제공하여 일관된 기능을 구현하게 함. 각각의 메서드나 멤버 변수를 접근함으로써 발생하는 오류를 최소화할 수 있다. public class MakeReport { StringBuffer buffer = new StringBuffer(); private String line = "======"; private String title = "이름 \\t 주소 \\t\\t 전화번호 \\n"; private void makeHeader() { buffer.append(line); buffer.appe.. 2023. 3. 14.
접근 제어 지시자(access modifier)와 정보은닉(information hiding) 접근 제어 지시자 (access modifier) 클래스 외부에서 클래스의 멤버 변수, 메서드, 생성자를 사용할 수 있는지 여부를 지정하는 키워드 public : 클래스 외부 어디서나 접근 가능 private : 같은 클래스 내부에서만 접근 가능(외부 클래스, 상속 관계의 클래스에서도 접근 불가) protected :같은 패키지나 상속관계의 클래스에서 접근 가능 아무것도 없는거(default) : 같은 패키지 내부에서만 접근 가능 (상속 관계라도 패키지가 다르면 접근 불가) get() set() 메서드 private으로 선언된 멤버 변수(필드)에 대해 접근, 수정할 수 있는 메서드를 public으로 제공 get() 메서드만 제공 되는 경우 read-only 필드 이클립스에서 자동으로 생성됨 정보 은닉 p.. 2023. 3. 14.
생성자와 오버로딩 vs 오버라이딩 생성자 객체를 생성할 때 new키워드와 함께 사용 ex) new Student(); 생성자는 일반 함수처럼 기능을 호출하는 것이 아니고 객체를 생성하기 위해 new와 함께 호출 됨 객체가 생성될 때 변수나 상수를 초기화하거나 다른 초기화 기능을 수행하는 메서드를 호출함 생성자는 반환 값이 없고, 클래스의 이름과 동일 대부분의 생성자는 외부에서 접근 가능하지만, 필요에 의해 private으로 선언되는 경우도 있음. //생성자 만들기 public Student(int studentNumber, String studentName, int grade) { this.studentNumber = studentNumber; this.studentName = studentName; this.grade = grade; .. 2023. 3. 14.
인스턴스와 힙 메모리 인스턴스 (instance) 클래스는 객체의 속성을 정의하고, 가능을 구현하여 만들어 놓은 코드 상태 **실제 클래스 기반으로 생성된 객체(인스턴스)**는 각각 다른 멤버 변수 값을 가지게 됨 가령 학생의 클래스에서 생성된 각각의 인스턴스는 각각 다른 이름, 학번, 학년등의 값을 가지게 됨 new키워드를 사용하여 인스턴스 생성 Student studentLee = new Student(); studentLee.studentName = "홍길동"; 힙 메모리 생성된 인스턴스는 동적 메모리(heap memory)에 할당됨 자바에서 Garbage Collector가 주기적으로 사용하지 않는 메모리를 수거 하나의 클래스로부터 여러개의 인스턴스가 생성되고 각각 다른 메모리 주소를 갖게됨 2023. 3. 14.
함수와 메서드 1. 함수란? 하나의 기능을 수행하는 일련의 코드 구현된 함수는 호출하여 사용하고 호출된 함수는 기능이 끝나면 제어가 반환됨 함수로 구현된 하나의 기능은 여러곳에서 동일한 방식으로 호출되어 사용될 수 있음 2. 함수 호출과 스택 메모리 - 스택 : 함수가 호출될 때 지역 변수들이 사용하는 메모리 - 함수의 수행이 끝나면 자동으로 반환 되는 메모리 3. 메서드(method) 객체의 기능을 구현하기 위해 클래스 내부에 구현되는 함수 멤버 함수(member function)이라고도 함 메서드를 구현함으로써 객체의 기능이 구현됨 메서드 이름은 그 객체를 사용하는 객체(클라이언트)에 맞게 짓는것이 좋음 ex) getStudentName() *함수와 메서드의 차이점 정리 함수는 특정 작업을 수행하기 위해 설계된 기.. 2023. 3. 14.
기본 자료형 vs 참조 자료형 1. 참조 자료형 변수 기본 자료형 : int, long, float, double 등 참조 자료형 : String, Date, Student 등 기본 자료형은 사용하는 메모리의 크기가 정해져 있지만, 참조 자료형은 클래스 타입으로 변수를 선언하는 자료형이다. 참조 자료형을 사용할때는 해당 변수에 대해 생성하여야 함 *String 클래스는 예외적으로 생성하지 않고 사용할 수 있음 2023. 3. 13.
인터넷 네트워크 1. IP(인터넷 프로토콜) 1) IP : 인터넷 프로토콜 역할 지정한 IP 주소(IP Address)에 데이터 전달 패킷(Packet)이라는 통신 단위로 데이터 전달 2) IP 프로토콜의 한계 비연결성 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송 비신뢰성 중간에 패킷이 사라지면? 패킷이 순서대로 안오면? 프로그램 구분 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면? 👉이러한 문제를 해결해 주는 것이 TCP / UDP 2. TCP / UDP 1) 인터넷 프로토콜 스택의 4계층 애플리케이션 계층 - HTTP, FTP 전송 계층 - TCP, UDP 인터넷 계층 - IP 네트워크 인터페이스 계층 프로그램이 메세지 생성 socket 라이브러리를 통해 전달 tcp 정보 생성, 메.. 2023. 3. 5.
명제 연습 (역, 이, 대우) 1. 만약 0이 홀수라면, 미국에서 2080년 월드컵이 열린다. → p는 q이다에서 p가 거짓이면 전체 명제는 참이다. 역 : 미국에서 2080년 월드컵이 열린다면, 0은 홀수이다. 이 : 만약 0이 홀수가 아니라면, 미국에서 2080년 월드컵이 열리지 않는다. 대우 : 미국에서 2080년 월드컵이 열리지 않는다면 0이 홀수가 아니다. 2. 만약 12980128940129 이 prime number라면, 2는 짝수이다. → 대우에서 2가 짝수가 아니라는 명제가 거짓이므로, 이 명제는 참이 된다. 역 : 2가 짝수라면, 12980128940129 이 prime number이다. 이 : 12980128940129 이 prime number가 아니라면, 2는 짝수가 아니다. 대우 : 2가 짝수가 아니라면, 1.. 2023. 3. 2.
728x90