본문 바로가기

분류 전체보기150

Java_Study 객체지향 프로그래밍 (오버로딩) 오버로딩 : 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것 ( 한 클래스 내에 이미 사용하려는 이름과 같은 이름을 가진 메서드가 있더라도 매개변수의 개수 또는 타입이 다르면, 같은 이름을 사용해서 메서드를 정의할 수 있다.) 오버로딩의 조건 1. 메서드 이름이 같아야 한다. 2. 매개변수의 개수 또는 타입이 달라야 한다. ※ 반환 타입은 오버로딩을 구현하는데 아무런 영향을 주지 못한다. 오버로딩 사용하는 이유 : 다른 이름을 가져야 하는 경우 해당 메서드를 일일이 구분해서 기억해야 하는 부담이 생기기 때문에 가변인자와 오버로딩 : 가변인자는 내부적으로 배열을 이용하는 것. ex) static String concatenate (String delim, String ... args) { ..... 2022. 7. 1.
Java_Study 객체지향 프로그래밍 (변수와 메서드) 변수의 종류 변수의 종류 선언위치 생성시기 클래스 변수 클래스영역 클래스가 메모리에 올라갈 때 인스턴스 변수 클래스영역 인스턴스가 생성되었을 때 지역변수 클래스 영역 이외의 영역 변수 선언문이 수행되었을 때 1. 인스턴스 변수 독립적인 저장공간을 가지므로 서로 다른 값을 가질 수 있다. 인스턴스마다 고유한 상태를 유지해야하는 속성의 경우, 인스턴스 변수로 선언 2. 클래스 변수 모든 인스턴스가 공통된 저장공간을 공유하게 된다. 한 클래스의 모든 인스턴스들이 공통적인 값을 유지해야 하는 속성의 경우, 클래스 변수 선언 3. 지역변수 메서드 내에서만 사용 가능, 메서드 종료되면 소멸되어 사용불가 인스턴스변수는 인스턴스가 생성될 때 마다 생성되므로 인스턴스마다 각기 다른 값을 유지할 수 있지만, 클래스 변수는.. 2022. 6. 29.
JAVA_객체지향 프로그래밍 (클래스와 객체) 객체지향언어의 특징 1. 코드의 재사용성이 높다. 새로운 코드를 작성할 때 기존의 코드를 이용하여 쉽게 작성할 수 있다. 2. 코드의 관리가 용이하다 코드간의 관계를 이용해서 적은 노력으로 쉽게 코드를 변경할 수 있다. 3. 신뢰성이 높은 프로그래밍을 가능하게 한다. 제어자와 메서드를 이용해서 데이터를 보호하고 올바른 값을 유지하도록 하며, 코드의 중복을 제거하여 코드의 불일치로 인한 오동작을 방지할 수 있다. 클래스와 객체 클래스 : 객체를 정의해놓은 것, 객체의 설계도 또는 틀 객체 : 클래스에 정의된 내용대로 메모리에 생성된 것 Ex : TV설계도(클래스) - TV(객체) 클래스를 정의하고 클래스를 통해 객체를 생성하는 이유는 객체를 생성할 때 간편하게 생성하기 위해서 객체와 인스턴스 인스턴스화 :.. 2022. 6. 29.
(1) 블록체인에 대해서 블록체인에서 말하는 ‘합의’란, 서로 같은 것을 유지하기 위한 메커니즘. 블록을 생성하고 블록체인을 유지하는 채굴자, 혹은 검증인들이 기존의 체인에 새롭게 철수의 블록을 더할 것인지, 영희의 블록을 더할 것인지를 ‘합의’하고, 철수가 만든 블록을 더하기로 결정했다면 모두의 컴퓨터(이하 노드)에 철수가 만든 블록을 새롭게 업데이트하여 모두 같은 내용의 블록체인을 유지하도록 규칙을 정하는 것이 바로 합의 알고리즘. 만약, 블록체인을 단 하나의 주체가 운영한다면 어떨까요? 혼자서만 사용하는 기철이의 블록체인은 합의할 필요도 없이 블록을 계속 연결해나갈 수 있을 것입니다. 그러나 위에서 말했던 철수와 영희, 그리고 다른 많은 주체들이 하나의 블록체인을 운영하는 ‘분산된’ 환경에서는 위에서 말했던 합의의 과정이 .. 2022. 6. 24.