본문 바로가기

Developer

(52)
[JAVA] 클래스와 객체2 인스턴스 스스로를 가리키는 예약어 class BirthDay{ int day; int month; int year; public void setYear(int year) { this.year = year; } public void printThis(){ System.out.println(this); } } public class ThisExample{ public static void main(String[] args){ BirthDay bDay = new BirthDay(); bDay.setYear(2000); // 2000년 탄생 // 참조 변수를 출력하면 클래스이름@메모리주소 System.out.prinln(bDay); // 참조 변수 출력 bDay.printThis(); // this 출력 메서드..
[JAVA] 클래스와 객체1 객체 지향 프로그램 : 어떤 대상(객체)을 가지고 프로그래밍한다. 먼저 객체를 만들고 객체 사이에 일어나는 일을 구현하는 것 클래스 : 객체의 속성과 기능을 코드로 구현한 것. 객체를 클래스로 구현하는 것 == 클래스를 정의한다. 클래스의 속성은 클래스 내부에 변수로 선언한다. -> 멤버 변수 public class Student { // public : 접근 제어자, class : 클래스 만드는 예약어, Student : 클래스 이름 // 멤버변수 int studentID; // 학번 String studentName; // 학생 이름 int grade; String address; // 메서드(멤버함수) 추가 public void showStudentInfo(){ System.out.println(s..
[JAVA] 조건문, 반복문 (if, for) public class exercise1{ public static void main(String[] args) { int age = 7; if(age >= 8 and age = 14 and age b) max = a; else max = b; // 동일코드 max = (a > b) ? a : b;​ swith-case 문 if (rank == 1) { score = 'A'; } else if (rank == 2) { score = 'B'; } else { score = 'C'; } // 동일코드 switch(rank){ case 1: score = 'A'; break; case 2: score = 'B'; break; default: score = 'C'; } System.out.println("당신의..
JAVA 변수 선언하기 변수 선언하고 값 대입하기 변수 선언1 : 변수 선언 후에 값을 초기화 하는 방법 변수 선언2 : 변수 선언과 동시에 값 초기화 public class Variable1 { public static void main(String[] args){ // 변수 선언1 int level; level = 10; System.out.println(level); // 변수 선언2 int level2 = 10; System.out.println(level2); } } 변수 이름 정하기 변수 이름은 영문자(대문자, 소문자)나 숫자를 사용할 수 있고, 특수 문자 중에는 $, _ 만 사용할 수 있다. ex) g_level, $dollar 변수 이름은 숫자로 시작할 수 없다. ex) 5may (x) 자바에서 이미 사용 중인 ..
네트워크 통신 - TCP, UDP, ARP, 서브넷, 게이트웨이 4계층에서 동작하는 프로토콜의 목적은 여러 애플리케이션 프로세스 중 통신해야 할 목적지 프로세스를 정확히 찾아가고 패킷 순서가 바뀌지 않도록 잘 조합해 원래 데이터를 잘 만들어내기 위한 역할을 한다. 4계층 프로토콜 (TCP, UDP) 와 서비스 포트 애플리케이션에서 사용하는 프로세스를 정확히 찾아가고데이터를 분할한 패킷을 잘 쪼개 보내고 조립하기 위해 TCP 프로토콜에서는 시퀀스 번호와 ACK 번호를 사용 TCP/IP 프로토콜 스택에서 4계층의 상위 프로토콜 지시자는 포트 번호는 출발지와 목적지를 구분해 처리해야한다. 웰 노운 포트 : HTTP TCP 80, HTTPS TCP 443, SMTP TCP 25 다양한 애플리케이션에 포트 번호를 할당하기 위해 Registered Port 범위인 1024 ~ ..
[Python] 알고리즘 복잡도 : 시간 복잡도 시간 복잡도 : 알고리즘 실행 속도 공간 복잡도 : 알고리즘이 사용하는 메모리 사이즈
[Python] LinkedList 구현하기 링크드 리스트(Linked List), 연결 리스트 떨어진 곳에 존재하는 데이터를 화살표로 연결해서 관리하는 데이터 구조 노드(Node) : 데이터 저장 단위 (데이터값, 포인터)로 구성 포인터(Pointer) : 각 노드 안에서 다음이나 이전의 노드와의 연결 정보를 가지고 있는 공간 class Node: def __init__(self, data, next=None): self.data = data self.next = next def add(data): node = head while node.next: node = node.next node.next = Node(data) # Node와 Node 연결하기 (포인터 활용) node1 = Node(1) node2 = Node(2) node1.next =..
[Python] Stack 구현하기 Stack stack은 LIFO(Last In, First Out) 또는 FILO(First In, Last Out) 데이터 관리 방식 컴퓨터 내부의 프로세스 구조의 함수 동작 방식이다. push() : 데이터를 스택에 넣기 pop() : 데이터를 스택에서 꺼내기 장점 구조가 단순하고 구현이 쉽다. 데이터 저장/읽기 속도가 빠르다. 단점 데이터 최대 개수를 미리 정해야한다. (파이썬의 경우 최대 1000번까지만 호출 가능) 저장 공간의 낭비 발생 미리 최대 개수만큼 저장 공간을 확보해야되기 때문 파이썬에서는 리스트로 스택을 구현함. data_stack = list() # append 메소드 사용 data_stack.append(1) data_stack.append(2) data_stack.append(3..