전체 글233 추상클래스 추상클래스란? - 추상메서드를 선언할 수 있는 클래스 - 상속받는 클래스 없이 그 자체로 인스턴스를 생성할 수 없는 클래스 - 설계만 되어있고 수행되는 코드에 대해서는 작성이 안된 메서드 추상 메서드 선언 상속 받는 클래스 없이 그 자체로 인스턴스를 생성할 수 없음 추상 메서드 형식 설계만 되어있고 수행되는 코드에 대해서는 작성이 안된 메서드 미완성으로 남겨두는 이유는 상속받는 클래스 마다 반드시 동작이 달라지는 경우에 상속받는 클래스 작성자가 반드시 작성하도록 하기 위해서 ↓ 2022. 8. 4. 상속(inheritance) 상속이란 ? - 기존의 클래스를 재사용하는 방식중의 하나이다. - 한 번 작성한 코드가 재사용이 필요할때 상대적으로 적은 양의 코드를 작성 할 수있다. - 코드를 재사용할시, 코드와 클래스가 많아질수록 관리가 용이해진다. 상속의 특징 - 상속을 통해 클래스간의 계층구조를 만들게 된다. - 부모 클래스에서 정의된 필드와 메소드를 물려 받는다. - 새로운 필드와 메소드를 추가 할 수 있다. - 자식은 오직 부모의 class만 상속받을 수 있다 ↔ 부모는 여러개의 class를 상속 할 수 있다. - 자식 클래스는 부모 클래스로부터 메소드와 필드를 물려받아 사용한다. - 부모 클래스는 자식 클래스에서 정의한 메소드나 필드를 사용하지 못한다. - 자식 클래스가 더 다양한 기능이 가능하므로 자식클래스로 인스턴스를 .. 2022. 8. 2. java 코딩 영어 단어 상속(inheritance) 에서 사용되는 단어 extends - extend = 더 길게[크게/넓게] 만들다, 연장하다, 확대하다 - class 를 확대하고 연장한다는 의미로 해석되는것 같다. 인터페이스(interface)에서 사용되는 단어 implements - 시행하다 (=carry out) - carry out 은 일반적으로 수행하다라는 의미인데 "인터페이스의 기능을 수행한다" 라고 해석했다. 2022. 8. 2. 생성자(constructor) 인스턴스가 생성될때 사용하는 "초기화 method" (new할때만 불리는 기능) 생성자 만드는 규칙 - 클래스(class) 이름 과 동일한 이름으로 지어주어야 한다. - return 값이 오지 않아야한다 (생각해보면 return 값이 필요없다) - parameter 로 받을 매개변수들을 입력한다. ↓ Phone(String model, String color, int price){ this.model = model; // this.model = Phone 클래스에 선언된 멤버 this.color = color; // 생성자 파라미터 model = 값을 전달받을 매개변수 this.price = price; // 전달받은 값이 클래스 멤버 변수에 들어간다. } 2022. 8. 2. 객체 지향 언어 (클래스, 인스턴스 ,메서드) 객체 지향의 기본 개념 : 실제 세계는 사물(객체)로 이루어져 있으며 , 발생하는 모든 사건들은 사물간의 상요작용 이다. 객체 지향 이론 : 상속, 캡슐화, 추상화 장점 - 코드의 재사용이 높다 - 코드 관리가 용이하다. - 신뢰성이 높은 프로그래밍을 가능하게 한다. ● 제어자와 메서드를 이용해서 데이터를 보호, 올바른 값을 유지하도록 함 ● 코드의 중복을 제거해 코드의 불일치로 인한 오작동 방지 클래스와 객체 1)클래스 클래스란 ? - 객체를 정의해 놓은것 - 객체의 설계도 또는 틀 클래스의 용도 : 객체를 생성하는데 사용 ex) 붕어빵기계 = 클래스 , 붕어빵 = 객체 ex) Tv설계도 = 클래스 , Tv = 객체 ↓ 클래스는 객체를 생성하는데 사용될 뿐 객체 그 자체는 아님 2) 객체 객체란? - .. 2022. 8. 1. 가변 배열 가변배열을 하기 위해서는 동적할당을 이용해야한다. main.cpp Arr.h 파일 Arr.cpp 2022. 8. 1. Call By Value, Pointer, Reference 1.Call by value (값에 의한 호출) main 함수에서 a 와 b의 값이 swap 되지 않음 2. Call by Pointer(address) 메인 함수에서도 swap이 이루어짐 ( 해당하는 변수의 주소값에 접근해서 참조하는 값을 바꾸기 때문, 원격조종) 3. Call by Reference 메인 함수에 선언되 a, b 변수에 m, n값을 참조해서 swap이 이루어짐 2022. 7. 28. 정수형 자료형 0 1 1 1 1 1 1 1 ==> 127 +1 0 0 0 0 0 0 1 ==> -127 ----------------------- 0 컴퓨터에서 음수는 양수에 더했을때 0이나오는 수로 생각한다. ex) 5 + (-5) = 0 10 + (-10) = 0 //음의 정수 찾기 (2의 보수법) //대응되는 양수의 부호를 반전후 , 1을 더한다 2022. 7. 28. 참조 자료형 class로 정의된 타입을 쓸때는 모두 참조 자료형이다. import java.util.Arrays; public class Main{ public static void main(String[] args){ String thatThat = "thatThat"; System.out.println(thatThat); //[]배열을 나타냄 //int [] 자료형은 기본 int 자료형이 아니므로 참조 자료형 int[] intArray = new int[] {1 , 2, 3, 4, 5}; System.out.println(Arrays.toString(intArray)); } } 2022. 7. 27. 변수와 상수 public class Main { public static void main(String[] args){ // write your code here int number = 5; System.out.println(number); String world = "Hello World"; System.out.println(sparta); //상수 final int finalNumber = 1; //final = 접근제어자, int = 자료형 System.out.println(finalNumber); //상수 이기 때문에 finalNumber = 2; 선언할수 없다. 재할당불가 System.out.println(finalNumber); world = "Good Bye World"; //변수 이기때문에 재할당 가능.. 2022. 7. 27. Java의 역사 Java 언어의 특징 - 자바는 제임스 고슬링과 연구원들이 개발한 객체 지향적 프로그래밍 언어 이다. - 한 번 작성하면 어디에서나 실행된다(JRE가 설치된 모든 환경에서 실행이 가능하다) - 1995년 탄생한 이후로 꾸준히 축척된 노하우로 안정성이 좋다. - 오랜기간 개발된 오픈소스 라이브러리가 많다. - 다양한 사람들이 개발하고 공유하는 방대한 라이브러리를 사용하면 개발 시간을 단축할 수 있다. Java를 사용하는곳 - 백엔드 서버 개발 - 데이터 엔지니어링 - 하드웨어 실행환경에 구애받고 싶지 않은 모든 곳 Java의 한계 - 예전에 정해진 Java의 문법 때문에, 더 유연하고 견고한 코드를 만들기 어려운 점이 있다. - 현재 전세계의 많은 개발자들이 자바를 대체하는 새로운 언어를 사용하고 개발하고.. 2022. 7. 27. 동적할당 calloc 함수 이용 #include #include int main(void) { int i , n; printf("처리할 데이터 수는 : "); scanf("%d", &n); int* iPtr = (int*)calloc(n, sizeof(int)); //malloc함수 반환값은 void //사용자가 원하는 반환타입으로 설정 if(iPtr == '\0') //iPtr이 null 이면 할당 실패! { puts("동적 할당 실패!!"); } printf("\n %d개의 정수 입력 \n\n", n); for(i = 0 ; i < n; i++) { printf("[%d]번 째 정수 : ", i); scanf("%d", iPtr+i); //포인터 자체가 주소값을 }//담고있는 변수임으로 하나씩 더해줌 printf("\n %d의 정수.. 2022. 7. 27. 동적할당 malloc함수 이용 #include #include int main(void) { int i , n; printf("처리할 데이터 수는 : "); scanf("%d", &n); int* iPtr = (int*)malloc(sizeof(int)); //malloc함수 반환값은 void //사용자가 원하는 반환타입으로 설정 if(iPtr == '\0') //iPtr이 null 이면 할당 실패! { puts("동적 할당 실패!!"); } printf("\n %d개의 정수 입력 \n\n", n); for(i = 0 ; i < n; i++) { printf("[%d]번 째 정수 : ", i); scanf("%d", iPtr+i); //포인터 자체가 주소값을 }//담고있는 변수임으로 하나씩 더해줌 printf("\n %d의 정수 출력.. 2022. 7. 27. 동적할당(malloc) 프로그램이 실행도중에 필요시에 동적으로 사용이 가능해야할때 사용 int* ptr = (int*)malloc(100); // 힙 영역에 100byte 할당 malloc(); 반환타입이 void //사용자가 사용하고자 하는 반환타입으로 그때그때 알맞게 사용하기 위함 동적할당 특징 1. 런타임 중에 대응 가능 2. 사용자가 직접 관리해야함(해제) #include #include //메모리 영역 // 1. 스택(stack) // 2. 힙(heap) // 3. 데이터(DATA) // 4. ROM(읽기 전용) int main(void) { int iPut = 0; scanf_s("%d ", &iPut); int* pInt = nullptr; //동적 할당 if (100 == iPut) { pInt = (int*)m.. 2022. 7. 26. 문자열 함수구현 #include #include #include #include void strCat(wchar_t* origin, unsigned int n, const wchar_t* add); unsigned int GetLength(const wchar_t* _szN); int strCmpp(const wchar_t* a, const wchar_t* b); int main(void) { char szTest[10] = "abc한글"; wchar_t szTestW[10] = L"abc한글"; wchar_t szName[20] = L"Raimond"; //문자열 문자 개수 세기 함수 GetLength(szName); //문자열 이어 붙이기 함수 strCat(szName, 20, L"abcedfg"); //문자열 크기.. 2022. 7. 25. 이전 1 ··· 8 9 10 11 12 13 14 ··· 16 다음