일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- Eclipse
- BTP
- python
- FPM
- BOBF
- 개발
- tm
- 자바 클래스
- udemy
- visual studio code
- ui5
- ABAP
- sap
- Deep Learning
- 이클립스
- mac
- 맥북
- html
- BOPF
- module
- 파이썬
- S/4HANA
- Algorithm
- java
- 알고리즘
- 클래스
- Fiori
- SAP 번역
- 백준 알고리즘
- 자바
- Today
- Total
목록Programming/JAVA (16)
z2soo's Blog
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ds3uE5/btrVP8P5sm1/WEXaF9KjqmLbha2trzVsjk/img.png)
Key point 1. Comparable : 기본 정렬을 위한 인터페이스 2. compareTo : Comparable 내부의 메소드로 정렬 기준을 구현하여 활용 (-1) 보다 작음 (0) 동일함 (+1) 보다 큼 3. java.util.Collections 클래스의 sort() 메소드 사용을 위해서는 Comparable 인터페이스 구현과 compareTo 메서드 오버라이딩 구현 필요!! 1. Comparable 인터페이스 Oracle의 공식 문서에 따르면 ... 해당 인터페이스는 이를 포함(implement)하는 클래스의 각 객체의 전체 순서를 정합니다. 이 순서를 자연 순서(natural ordering)이라 하고, 클래스의 compareTo 메소드는 자연 비교 방법(natural compariso..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ba2Gbb/btrWCUbmJOA/4cKs26NsszmIGaIAqlkOGK/img.png)
Key point 1. 추상 클래스는 실체 클래스의 공통 부분(변수, 메소드)를 추출한 클래스 2. 추상 클래스로는 객체 생성 불가 3. 추상 클래스 - 실체클래스 : 상속관계 4. 추상 클래스의 추상 메소드는 재정의가 필수! 1. 추상 클래스와 실체 클래스 추상(abstract) 클래스는 실체 클래스의 공통된 부분(변수, 메소드 등)을 추출하여 선언한 클래스를 의미한다. 이 때, 실체 클래스는 객체를 직접 생성할 수 있는 클래스를 말하며, 추상 클래스로는 객체 생성이 불가능하다. 추상 클래스를 사용하기 위해서는 반드시 상속해서 사용해야 한다. 실체 클래스 : 객체 생성 가능 추상 클래스 : 객체 생성 불가능 2. 추상 클래스의 용도 추상 클래스는 크게 통일성, 시간절약을 위해 사용된다고 본다. 특히 통..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cEsoex/btrV57bWbP9/8FafaFgQe1P1HOk8E7gO9k/img.png)
Key point 객체 instnaceof 클래스 : 객체의 타입을 확인하여 true, false 값을 리턴 Instanceof 연산자 Instanceof는 객체에 사용되는 연산자이다. 객체의 타입을 확인하여 true 또는 false로 위해 사용하며, 해당 객체의 형 변환이 가능한지의 여부를 나타내기도 한다.type casting 혹은 해당 객체의 속성, 기능에 접근하기 전에 오류를 방지하기 사용한다. 객체가 참조하는 클래스를 확인하는 메소드 getClass 와 함께 잘 사용된다. 예를 들어, 아래의 코드는 Coffes 라는 ArrayList에 담긴 객체가 참조하는 클래스가 Latte 이 맞는 경우 Coffee 객체의 메소드를 사용하여 로직을 수행한다. boolean check = (coffees.get..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bMiYgW/btrV3zzVobp/7I8OVAsq6ZzgFohH9UNef0/img.png)
1. 프로젝트의 흐름도 Member 클래스 (회원정보) n명 정보 입력 컨테이너(ArrayList 타입의 customer)에 저장 ATM Machine 클래스 컨테이너(고객정보 DB 역할)를 가져와서 연결 해당 클래스에 특정 회원을 찾아서 로그인 하는 기능 존재 로그인 후 볼 수 있는 개인 회원용 메뉴 제작 [1] 잔액조회 →로그인된 고객의 잔액 출력 [2] 입금 → 금액을 입금(누적) [3] 출금 → 잔액에서 차감 [4] 종료 → 현재 실행되고 있는 메뉴 종료 ATMPlay 클래스 프로그램 시작 고객 정보 컨테이너 생성 고객 정보 저장 ATMMachine 객체 생성 고객 정보 넘겨줌 2. Java Code Member package ATMpackage; public class Member { //속성 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cawswE/btrVZ6C8cYw/9IuBpMShaB9SYv6eETgxVk/img.png)
To-do 1. main스레드에서는 두 개의 스레드를 만들어내서 작동시킨다. 그리고 최종 결과만 출력한다. 2. 스레드 작업내용 - 자신의 이름을 출력한다. - 전역변수(static 데이터)에 랜덤한 숫자를 1개 누적시킨다. - 작업이 끝나면 자신의 이름 + "작업 완료" 메시지를 출력한다. 3. static 데이터는 처음에 (0)으로 초기화되어 있어야 한다. Key point 단점 : 스레드 사용시, 어떤 작업이 어떤 순서로 어떤 시점에 수행되는지 알 수 없어 사용하기 까다로움 장점 : CPU를 최대한으로 끌어서 사용할 수 있음 * 주로 네트워크 쪽에서 많이 사용한다. Java Code ThreadWork package ThreadPack; import java.util.Random; public cl..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bu2WsP/btrVVgtMXYn/Zl5ZfMtbzWT6zqrVNhV9vk/img.png)
Key point 1. JAVA 멀티스레드 : 여러 작업을 동시에 실행시키는 방법 2. 인터페이스 implements 시, 무조건 구현해야하는 method 존재 3. Thread.sleep(초) : 스레드 작업에 (초) 딜레이 4. random.nextInt(정수) : 정수 범위에서의 랜덤한 정수 생성 1. JAVA 멀티스레드 개념 기본적으로 자바 프로그램은 한 개의 프로세스(프로그램)으로 작동된다. = 싱글 스레드 CPU에서 여러 개의 코어를 가지고 있다면, 동시에 여러 가지의 작업을 실행시킬 수 있는데, 이를 멀티 프로세스라고 한다. 다만, 코어수보다 작업이 많다면, 한 개의 코어가 여러가지의 작업을 수행할 수 없는데, 이때 운영체제가 스케줄링이라는 기법으로 시간을 쪼개서(Round-Robin) 여러..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/FUnSw/btrUPZyJ2ZI/nFsP9kxICk8s2xvG2ySZ1k/img.png)
1. 오버로딩 (Overloading) 같은 이름의 메서드/생성자를 여러개 정의하고, 매개변수의 갯수와 유형을 다르게 정의하여 활용하는 경우다. 메서드와 생성자 모두 오버로딩 가능하다. 메서드 오버로딩 생성자 오버로딩 : 오버로딩 생성자와 디폴트 생성자 중 하나만 사용해야 함 package Pack04; public class Parents { // 속성 private String parentsData01; // 디폴트 생성자 public Parents() {System.out.println("Parents 객체 생성완료");} // 오버로드 생성자 public Parents(String x) {System.out.println("Parents 객체 생성완료" + x);} // 기능 void test01..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/JtYoA/btrULPxitLo/tkhavYDQAMxaDhLmWTvey0/img.png)
Key point 1. 상속 = 기존의 클래스를 확장시킨 것 (extends) 2. 오버로딩 & 오버라이딩 다른 개념 1. 클래스의 상속 부모 클래스와 자식 클래스는 다음과 같이 정의되고 상속된다. 상속된 경우, 부모의 데이터와 메소드 기능을 사용할 수 있게 된다. // 부모 클래스 Class 부모() {} // 자식 클래스 Class 자식 extends 부모() {} Child 클래스, Parents 클래스를 생성하고 Parents를 부모 클래스, Child를 자식 클래스로 설정해보자. Parents 클래스 package Pack04; public class Parents { // 속성 private String parentsData01; protected String parentsData02; // ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bkipk8/btrUHRBYaUL/5OxVrkcffL5RWD6yqONhWK/img.png)
Key point 1. 오버로딩 = 메소드가 같은 이름으로 여러개 존재하는 것 1. 생성자 생성자에 대하여 이전에 잠깐 다루었다. 생성자 = 객체 생성시 바로 실행되는 메소드 로 정의하였는데, 아래 글을 참고하도록 하자. JAVA의 Class (2) 생성자 Constructor Lesson point 1. 생성자 = 초기 자동 실행 메소드 2. 생성자 이름 = 클래스 이름 1. 생성자 JAVA의 생성자 Constructor란 무엇이며 어떤 때 사용하는가? 생성자는 메소드다. 다만, 실행되는 시점이 정해져있 z2soo.tistory.com 2. 생성자 오버로딩 오버로딩이란 메소드가 같은 이름으로 여러개 존재하는 것이다. 상황에 따라 다른 동작을 하게 만든다. 생성자는 아래와 같이 두 타입으로 구분되며, 둘..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bAE0CT/btrUMQBItVW/Sw9Ip1brhxEKPx537cV5W1/img.png)
To-Do - 커피가게를 클래스로 구현한다. - 객체에 대한 CRUD 작업을 진행한다. - 컨테이너 ArrayList를 생성하여 다양한 coffee 클래스 객체를 저장하고 읽어오는 작업을 진행한다. Coffee에 대한 클래스는 아래 포스팅 중 coffee01 부분을 참고한다. JAVA의 Class (2) 생성자 Constructor Lesson point 1. 생성자 = 초기 자동 실행 메소드 2. 생성자 이름 = 클래스 이름 1. 생성자 JAVA의 생성자 Constructor란 무엇이며 어떤 때 사용하는가? 생성자는 메소드다. 다만, 실행되는 시점이 정해져있 z2soo.tistory.com JAVA Code package Pack02; import java.util.ArrayList; public cl..