본문 바로가기

프로그램언어

클래스3 Inner 클래스 내부 클래스란 클래스안에 다른 클래스가 정의 되는 것을 말한다. 내부 클래스는 멤버형태로 클래스를 포함할 수 있으며 중첩되는 클래스의 개수는 제한이 없다. 내부 클래스를 포함하는 바깥 클래스를 Outer클래스라고하며 내부에 포함된 클래스를 Inner클래스라한다. Inner클래스의 특징 및 장점 Inner클래스는 Outer클래스의 멤버를 마치 지신의 멤버처럼 사용할 수 있다. Outer클래스 멤버의 접근 지정자가 private 일지라도 접근 할 수 있다. Inner클래스 안에 static변수를 선언 할 수 없다. 단 static Inner클래스는 선언 기능하다. Inner클래스의 접근은 반드시 Outer클래스를 통해서 접근 할 수 있다. 단 static Inner클래스는 바로 접근 가능하.. 더보기
클래스2 11. 클래스들의 관계 현실 세계에 존재하는 객체들의 독자적으로 존재하거나 사용되지 않고 일반작으로 여러 객체들 간에 특정 관계를 맺으면서 존재하게 된다. 종류 is a 관계 : 대학생 is a 학생, 중학생 is a 학생, 초등학생 is a 학생 has a 관계 : 자동차 has a 엔진, 자동차 has a 바퀴, 자동차 has a 라디오 상속 is a 관계가 성립되는 클래스들간의 관계 상속을 자바 코드에서는 extends 키워드로 표현한다. 형식 public class 자식클래스명 extends 부모클래스명 { } 상속과 생성자 생성자는 상속되지 않는다. 클래스를 객체 생성할 때에는 자동으로 부모 클래스를 먼저 객체 생성 후에 자신의 클래스가 생성된다. 부모 클래스의 객체가 생성되면 부모 클래스의 기.. 더보기
클래스1 클래스 객체지향 프로그래밍(OOP)에서 클래스는 특정 종류의 객체내에 있는 변수와 메소드를 정의하는 일종의 틀, 즉 템플릿이다. 따라서, 객체는 클래스로 규정된 인스턴스로서, 변수 대신 실제값을 가진다. 객체 생성 클래스명 레퍼런스변수명 Student stu; 레퍼런스변수명 = new 클래스명() stu = new Student(); Student stu = new Student(); 객체 멤버의 접근 레퍼런스변수명.필드 Student stu = new Student(); stu.age = 21; 레퍼런스변수명.메소드명 Student stu = new Student(); stu.setName("홍길동'); 예제] class Student { String name; int age; public void s.. 더보기
스윙 메뉴만들기 메뉴만들기 import javax.swing.*; public class MenuEx extends JFrame { public MenuEx() { setTitle("Menu 만들기 예제"); createMenu(); // 메뉴 생성, 프레임에 삽입 setSize(250,200); setVisible(true); } // 메뉴를 만들어 프레임에 삽입한다. private void createMenu() { JMenuBar mb = new JMenuBar(); // 메뉴바 생성 JMenu screenMenu = new JMenu("보기"); // 보기 메뉴에 메뉴아이템 생성 삽입 screenMenu.add(new JMenuItem("불러오기")); screenMenu.add(new JMenuItem("숨기기.. 더보기
스레드 _beginthreadex() 함수 : 스래스 생성하기 uintptr_t _beginthreadex( // 스레드 핸들 값 반환 void *security, // SECURITY_ATTRIBUTES 구조체의 포인터 변수, NULL을 사용 unsigned stack_size, // 스레드를 위한 스택의 크기, 0을 사용 unsigned ( *start_address )( void * ), // 스레드를 실행할 함수 이름 void *arglist, // 스레드 함수에 전달될 매개변수 주소 unsigned initflag, // 스레드 상태 지정 값으로 실행하기 위해 0을 사용 unsigned *thrdaddr // 스레드 ID를 받기 위한 32비트 포인터 변수, NULL을 사용 ); _endthreadex(.. 더보기
윈도우 소켓2 논블로킹 통신 논블로킹이란 서버가 무한정 기다리지 않고 다른 일을 하다가 연결을 시도하는 신호가 도착하거나 통신 메시지가 도착하면 사용자가 정의한 윈도우 메시지를 보내는 방식이다. WSAAsyncSelect() 함수 : 윈도우 메시지, 네트워크 이벤트 등록 함수 int WSAAsyncSelect( SOCKET s, // 연결된 소켓 HWND hWnd, // 메시지가 발생하는 윈도우의 핸들 unsigned int wMsg, // 등록될 윈도우 메시지 long lEvent // 등록될 네트워크 이벤트 ); //성공시 0을 반환, 실패시 SOCKET_ERROR 반환 //네트워크 이벤트 enum NetworkEvent { FD_ACCEPT, //클라이언트가 접속하면 윈도우 메시지가 발생 FD_READ, //수신.. 더보기
윈도우 소켓1 윈도우 소켓을 이용하여 프로그램을 작성하기 위해서는 ws2_32.lib 라이브러리를 추가해야한다. WSAData 구조체 : 윈도우 소켓 초기화 정보를 가지고 있는 구조체 struct WSAData { WORD wVersion; // 윈도우 소켓의 버전 WORD wHighVersion; // 지원되는 소켓의 상위 버전으로 wVersion과 일치 char szDescription[WSADESCRIPTION_LEN+1]; // NULL로 끝나는 아스키 스트링 값, 윈속 설명 char szSystemStatus[WSASYS_STATUS_LEN+1]; // NULL로 끝나는 아스키 스트링 값. 상태 문자열 unsigned short iMaxSockets; // 사용할 소켓의 최대 소켓 수, version 2부터는.. 더보기
파일 입출력2 메모장 만들기1 텍스트 컨트롤을 이용하여 메모장 만들기 #include #include #include #include "resource.h" LRESULT CALLBACK WndProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam); HINSTANCE hInst; int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow) { HWND hwnd; MSG msg; WNDCLASS WndClass; hInst = hInstance; WndClass.style = CS_HREDRAW | CS_VREDRAW; WndClass.lpfnWndProc = .. 더보기