이클립스 설치, 환경변수 설정
식별자 클래스, 변수, 메소드 등에 붙이는 이름. 대소문자 구분. 특수문자 _ 사용 가능 > # 불가능한 식별자 숫자로 시작하는 이름 특수문자 공백 이미 사용 중인 키워드 > # 키워드 이름 규칙 패키지 : 모두 소문자. 실제로는 회사 도메인을 거꾸로 작성. 클래스
문자열 타입 기본 타입(Primitive type)은 아니다. 자주 사용하기 때문에 기본 타입처럼 사용할 수 있도록 자바가 지원한다. String 클래스를 사용한다. 출력: Korea seratpfk
promotion이라고 한다.자동으로 다른 데이터타입으로 변환하는 것을 말한다.작은 크기의 데이터타입이 큰 크기의 데이터타입으로 변환될 때 자동으로 진행된다.정수가 실수로 변환될 때 자동으로 진행된다.
casting이라고 한다.큰 크기의 데이터타입을 작은 크기의 데이터타입으로 변환할 때 강제로 진행한다.실수를 정수로 변환할 때 강제로 진행한다.강제로 변환할 변수 앞에 괄호를 붙이고 변환할 데이터타입을 작성한다.소수 -> 정수 강제 형 변환에서 소수점은 항상 잘려 나간
문자열을 int 숫자데이터로 변경시키려면 Integer.parseInt문자열을 long 숫자데이터로 변경시키려면 Long.parseLong문자열을 double 숫자데이터로 변경시키려면 Double.parseDouble다음과 같이 문자열이 숫자데이터로 변경됨을 알 수 있
a + b (더하기)a - b (빼기)a \* b (곱하기)a / b (나누기, 몫)a % b (나누기, 나머지)7 나누기 2는 3.5 이다.답이 3.5가 아닌 3으로 나오는 이유는 int가 정수 타입이기 때문.7 나누기 2의 값을 3.5로 나타내고 싶다면, doubl
1씩 증가하거나 감소하는 연산자증가는 ++, 감소는 --를 사용한다.\++a변수 a의 값을 1 증가시키고 사용한다.b에서 전위 연산으로 a의 값을 1 증가시켜 2가 되기 때문에a와 b 둘 다 값이 2가 나오는 것을 알 수 있습니다.a++변수 a의 값을 사용하고나서 1
x에 10, y에 20이 있다.x와 y에 저장된 값을 서로 교환하시오.int temp;라는 변수를 하나 더 선언한다.temp에 x의 값을 저장하고, x에 y 값을 가져온다. 그리고, y에 temp에 저장해 놓은 x 값을 가져온다.\+=,-=,\*=,/=,%= 등출력:2
초과 : >미만 : <이상 : >=이하 : <=같다 : ==다르다 : !=연산 결과는 boolean(true, false)
\*논리 AND : &&, 모두 true이면 true/하나라도 false이면 false논리 OR : ||, 하나라도 true이면 true/모두 false이면 false논리 NOT : ! , true는 false/false는 true변수 n을 10 증가시킨 뒤 n이 1
조건을 만족하는 경우와 그렇지 않은 경우 모두를 처리하는 연산형식:조건 ? 만족하는 경우 : 만족하지 않는 경우 예시순위가 1이면 "금메달', 순위가 2이면 "은메달", 순위가 3이면 "동메달"나머지 순위는 "없음"홀수는 "홀수", 짝수는 "짝수"홀수는 "홀수", 짝수
문자열이 포함된 + 연산은 연결출력:구디아카데미100번지2행사 \*1+1행사가 아닌 2행사로 출력된다.빈 문자열("")을 + 해 줌.출력:100
조건을 만족하는 경우에만 실행형식:if(조건) { 실행문}점수는 40점이기 때문에 조건을 만족하는 If문 if(score < 60)이 실행되어 "불합격"이라는 결과가 나옵니다.
조건을 만족하는 경우와 그렇지 않은 경우 모두 처리한다.형식:if(조건) { 실행문} else { 실행문}else를 사용하면 조건에 만족하지 않는 경우도 간단하게 처리할 수 있다.
조건이 여러 개 사용되는 경우에 각 조건을 처리한다.형식:if (조건) { 실행문} else if(조건) { 실행문} else if(조건) { 실행문}나이에 따른 결과 출력0 ~ 7 : 미취학아동8 ~ 13 : 초등학생14 ~ 16 : 중학생17
표현식의 결과 값에 따른 분기를 처리한다.표현식의 결과 값은 double, boolean 데이터타입일 수 없다.형식:switch(표현식) {case 값: 실행문; break;case 값: 실행문; break;default: 실행문;}각 층별 관리자를 출력하라.1 ~ 2
연속된 숫자를 생성할 때 주로 사용한다.배열과 함께 자주 사용된다.형식: 1~10까지 출력하기10부터 1까지 출력하라.구구단 7단을 출력하라.1 ~ 100사이의 모든 3의 배수만 출력하라1 ~ 100 모든 정수 더하기begin ~ end 모든 정수 더하기begin과 e
특정 실행문을 반복할 때 사용한다.특정 반복 횟수가 정해지지 않은 경우에 사용한다.끝이 있으면 for문, 데이터를 가늠할 수 없는 경우 while문을 사용한다.형식:79350원에서 잔액이 없을 때까지 450원을 인출한다.
switch문을 종료할 때 사용한다.반복문(for, while)을 종료할 때 사용한다.모금 목표 : 100000원한 번에 30원씩 모금1회 모금액 30원 현재 30원2회 모금액 30원 현재 60원...모금액이 100000원이 될때까지 모금액이 30원씩 증가
반복문의 시작 지점으로 이동한다.실행에서 제외할 코드가 잇는 경우에 사용한다.1 ~ 100 중에서 3의 배수를 제외하고 모두 더하기
1일차 1교시1일차 2교시...1일차 8교시2일차 1교시...3일차 8교시1x1=11x2=2...9x9=812x1=22x2=4...5x5=25Break로 안쪽 for문이 종료됨.안쪽 for문이 5x5로 끝나고 바깥쪽 for문은 6으로 나아갈 수 없어서 종료됨.
random 클래스, Math 클래스를 주로 활용한다. Math.random()은 0과 1사이에 있는 숫자를 랜덤으로 출력한다.0.0 <= Math.random() < 1.0 즉,0% <= Math.random() < 100% 라고 볼 수 있다.1
타임스탬프(timestamp) 1970-01-01 0:00부터 1/1000초마다 증가하는 long 타입의 정수값 > # 나노타임(nanoTime) s > ㎳(천분의 1초) > ㎲(백만분의 1초) > ㎱(십억분의 1초) 나노초(㎱) 값을 가지는 long 타입의 정수값
클래스 명명 규칙 패키지 다음에 마침표(.)를 적고 클래스명을 적는다. > # 예외 규칙 java.lang 패키지에 소속된 클래스들은 패키지를 생략한다. > # java.util 패키지의 Date 클래스 java.util.Date import java.util.da
Date 클래스와 now 객체 1.java.util.Date 클래스 Date 클래스를 입력하면 3째줄에 import가 생성되고, Date 클래스의 패키지를 생략할 수 있다. java.sql.Date; 데이터베이스의 날짜 표시 방식에 맞춰 놓은 클래스 Oracle
Calendar 클래스 java.util.Calendar 클래스 현재 날짜 또는 특정 날짜를 나타낼 때 사용 날짜의 특정 요소(년, 월, 일, 시, 분, 초, ...)를 쉽게 사용 > # 년, 월, 일, 요일 1은 일요일, 따라서 월요일은 2. > # 오전/오후,
LocalDateTime 클래스 jaca.time.LocalDateTime 클래스 JDK 1.8부터 사용이 가능한 클래스 특정 날짜 요소 사용이 가능 날짜의 패턴 지정이 가능 ※날짜/시간 패턴 (대소문자 주의!) yy 22 yyyy 2022 M 7 MM
SimpleDateFormat 클래스 java.text.SimpleDateFormat 클래스 패턴이 적용된 String 타입의 날짜 반환 같은 클래스 이름 중복 안되기 때문에 java.sql.Date는 import처리 되지 않는다.
문자열 비교 str1과 str2는 같다. str3과 str4는 다르다. but, 문자열 비교는 ==으로 비교하면 안된다. 1. 문자열 동등 비교 둘 다 true가 나오는 것을 확인할 수 있다. ![](https://velog.velcdn.com/images/
java.lang.StringBuilder 클래스 출력: 1trueT3.14hello > # 동등 비교 출력: false 이유: String과 StringBuilder는 다르다. StringBuilder로 만든 문자열은 반드시 마지막에 String으로 변환해야
javax.swing.JOptionPane 클래스 GUI 툴을 제공하는 클래스 출력:
java.util.Scanner 클래스 데이터타입별로 입력 받을 수 있는 메소드를 제공 객체 sc는 System.in(키보드)으로부터 입력을 받는다. sc.close(); : 생략 가능 출력: 이름을 입력하세요 >>> '이름 입력' 나이를 입력하세요 >>> '나이
배열(Array) 여러 개의 변수를 하나의 이름으로 관리하는 자료 구조 구성 요소 1) 인덱스 : 각 변수의 위치 정보. 0으로 시작 2) 배열명 : 모든 변수를 관리하는 하나의 이름 각 변수는 배열명에 대괄호[]와 인덱스를 붙여서 구분 > # 배열 선언
배열의 초기화 > # 최대값, 최소값
배열의 데이터타입 int[] : 참조 타입(Reference Type) 연속된 메모리 값을 사용한다. > # 배열의 길이 늘리기 배열의 길이는 변경할 수 없다. 늘어난 길이의 새로운 배열을 만들고, 기존 배열의 값을 모두 새로운 배열로 옮기고, 기존 배열의
for문 1번째 친구 - 라이언 2번째 친구 - 프로도 3번째 친구 - 어피치 의 형식으로 출력하라. 출력: 1번째 친구 - 라이언 2번째 친구 - 프로도 3번째 친구 - 어피치 > # 향상 for문 friends 배열의 모든 요소를 하나씩 String frie
2차원 배열 1차원 배열을 여러 개 관리하는 자료 구조 1차원 배열들의 길이는 서로 다를 수 있음 > # 2차원 배열의 선언 및 생성 2차원 배열의 선언 int arr; 2차원 배열의 생성 1) arr = new int3; - 3행 2열의 구조 (김밥 3줄
일반 for문 출력: 국어 윤리 수학 영어 미술 수학 과학 체육 사회 수학 영어 국어 한자 문학 수학 영어 음악 국어 수학 영어 > # 향상 for문 출력: 국어 윤리 수학 영어 미술 수학 과학 체육 사회 수학 영어 국어 한자 문학 수학 영어 음악 국어 수학 영어
User (메인메소드 없음) User를 구성하는 속성(Attribute)이 필드(Field)이다. 필드는 일반 변수와 달리 자동으로 초기화된다. > # 객체 선언 User user = null; > # 객체 생성 user = new User(); > # 객체 선
class : Student (메인메소드 없음) > # class : School (메인메소드 없음) > # class : SchoolMain (메인메소드 설정)
메소드(Method) 함수의 개념 클래스 내부에 포함된 함수는 메소드라고 부름 > # Calculator (메인메소드 없음) >> ## add 메소드 정의 >> ## sub 메소드 정의 >> ## mul 메소드 정의 >> ## div 메소드 정의 int : 반
커피 뽑기 시나리오 한 잔 1000원 종류 : 1(아메리카노), 2(카페라떼) > # VendingMachine (메인메소드 없음) > # VendingMachineMain (메인메소드 실행)
Car (메인메소드 없는 클래스) >>## 필드 >>## 메소드 기름 넣기 반환타입 : void (반환값이 없다) 메소드명 : addOil 매개변수 : int o 달리기 반환타입 : void 메소드명 : pushAccel 매개변수 : X 속도는 25씩 증가, 최대
Caculator 클래스 (메인메소드 없음) 같은 이름의 메소드가 2개 이상 존재한다. 같은 이름과 다른 매개변수를 가져야 오버로딩 할 수 있다. 반환타입은 오버로딩과 상관이 없다. > # CaculatorMain 클래스 (메인메소드 실행) 출력: 2 3 4 15
생성자(Constructor) 객체 생성할 때 사용되는 특별한 메소드 특징 1) 메소드 이름이 클래스 이름과 같다. 2) 반환타입이 존재하지 않는다. 생성자는 필드 초기화 용도로 사용 > # 디폴트 생성자(Default Constructor) 개발자가 생성
정보 은닉(Information Hiding) 객체 내부의 정보(=필드)를 다른 객체에게 보여주지 않고 숨기는 것 객체 외부에서는 객체 내부 정보를 직접 접근하거나 조작하는 것이 불가능함 객체의 정보는 필드에 저장하기 때문에 정보 은닉의 실제 의미는 필드 값을 숨기는
this 현재 객체의 참조값 현재 객체의 멤버(필드, 메소드)를 호출할 때 사용 생성자 내부에서 다른 생성자를 호출할 때 this() 형태로 사용 > # Student(메인메소드 없음) 이클립스 -> 메뉴 Source -> Generate Getters and Se
Rectangle(메인메소드 없음) > # RectangleMain(메인메소드 설정)
static 정적 요소 객체 생성 이전에 메모리에 미리 만들어 지는 공유 요소 클래스에서 1개만 만들어 짐 클래스를 이용해서 호출하기 때문에 클래스 변수, 클래스 메소드라고 부름. > # MyMath(메인메소드 없음) final은 못바꾸기 때문에 public으로 해
상속 어떤 클래스의 필드와 메소드를 다른 클래스가 물려 받아 사용하는 것 부모클래스가 자식클래스에게 필드와 메소드를 물려 줌 자바에서는 부모클래스를 "슈퍼클래스", 자식클래스를 "서브클래스"라고 함 > # 상속의 장점 동일한 메소드를 클래스마다 여러 번 정의할 필요가
연습문제 car : 달린다 Ev : 달린다, 충전한다 Hybrid : 달린다, 충전한다, 기름넣는다 > # Car 클래스 (메인메소드 없음) > # Ev 클래스 (메인메소드 없음) > # Hybrid 클래스 (메인메소드 없음) > # HybridMain 클래스 (
Gun 클래스 (메인메소드 없음) > # Soldier 클래스 (메인메소드 없음) Gun 클래스에서 상속받음. > # SoldierMain 클래스 (메인메소드 설정)
출력:계좌번호: 1234, 잔고: 100000원계좌번호: 4567, 잔고: 50000원
Person 클래스 생성 (메인메소드 없음) > # Student 클래스 생성 (메인메소드 없음) 서브클래스는 슈퍼클래스의 생성자를 "반드시" 호출해야 한다. 자식이 태어나려면 부모가 태어나 있어야 한다. 개발자가 슈퍼클래스의 생성자를 호출하지 않으면 자동으로 JV
Person클래스 생성(메인메소드 없음) > # Student클래스 생성(메인메소드 없음) > # StudentMain클래스 생성(메인메소드 생성) 출력: tom goodee
연습문제 학교 다니면서 도서관에서 아르바이트 하는 학생이 있다. 클래스: Alba 필드: String company; 생성자 호출: new Alba("jessica(getName)", "seoul univ(getSchool)", "library(getCompany)")
메소드 오버라이딩 부모클래스에 taste가 있지만 맛이 다르기 때문에 메소드를 새로 다시 만들어야 함. > # Coffee클래스(메인메소드 없음) > # Espresso클래스(메인메소드 없음) > # EspressoMain클래스(메인메소드 설정) 출력: 쓰다
Shape클래스 (메인메소드 없음) > # Circle클래스 (메인메소드 없음) > # Main클래스 (메인메소드 설정) 출력: 도형의 종류 : 도넛 반지름 : 7.5 넓이 : 176.71458676442586 > # 연습문제 너비, 높이가 서로 다른 직사각형(
연습문제1 Coffee - Espresso - Americano Espresso espresso = new Espresso("케냐", 50); espresso.info(); // 케냐 원두, 물 50ml Americano americano = new Americano
Person클래스 생성(메인메소드 없음) > # Student클래스 생성(메인메소드 없음) > # Alba클래스 생성(메인메소드 없음) > # Main클래스 생성(메인메소드 설정) > # Person 타입의 배열을 이용
연습문제 Bus, Seat, Person, Student, Alba 클래스 생성 > # Person클래스 생성(메인메소드 없음) 모두가 가지는 공통요소(이름)을 필드로 생성한다. > # Student클래스 생성(메인메소드 없음) Person과 상속관계 필드 없음.
연습문제 클래스: Product, Snack, Meat, Milk, Customer Snack, Meat, Milk는 모두 Product이다. 모든 Product는 이름(name)과 가격(price)만 가진다. 고객(Customer)은 모든 Product를 10개 담을
다운캐스팅 업캐스팅 된 서브클래스 객체를 다시 서브클래스 타입으로 변환하는 것 강제로 타입을 변환하는 casting 방식으로 처리해야 함 업캐스팅의 문제를 해결하기 위한 또 다른 방법 > # Person 클래스 > # Student 클래스 > # Alba 클래스
연습문제 Car : drive() Ev : drive(), charge() Hybrid : drive(), charge(), addOil() Main : 임의의 자동차 10대 배열에 저장하기(33%확률로 랜덤 생성) car이면 drive() 호출
Object class 모든 클래스의 공통 메소드 모든 클래스는 Object class를 슈퍼클래스로 가진다. extends가 없는 클래스는 자바가 강제로 Object class에 상속시킨다. Object 클래스는 모든 객체(변수)를 저장할 수 있다. Object 클
클래스의 이름과 객체의 해시코드를 @로 연결한 문자열을 반환객체의 해시코드를 통해서 객체의 참조값을 확인 가능출력:이름 : jamesp1과 p2는 이름이 "kim"으로 동일But, 서로 다른 객체이기 때문에 false가 반환됨두 객체의 문자열이 동일하면 동일한 객체로
추상 메소드, 추상 클래스
학생명:emily중간고사성적국어:31, 영어:82, 수학11총점:124, 평균:41.333333333333336
GameUnit클래스 내 에너지 : getEnergy(), this.getEnergy() 내 공격력 : getPower(), this.getPower() 내 이름 : getName(), this.getName() 상대 에너지 : unit.getEnergy() 상대
롬복 설치, 제거, 테스트 실행
연습문제 책(번호, 제목) 도서관(책 배열) 책 추가 책 제거 책 검색 전체조회 Scanner 클래스 > # Book 클래스(lombok 활용) > # Library 클래스 > # Main 클래스
인터페이스(Interface) 클래스가 구현해야 할 메소드를 선언해 둔 자바 파일
출력: User [userNo=1, id=admin, email=admin@naver.com]
User 클래스 Main 클래스
static 필드 객체 생성 이전에 메모리에 미리 만들어 두는 필드
User 클래스 출력: ex03_singleton.User@26f0a63f ex03_singleton.User@26f0a63f
User 클래스 > # Main 클래스 출력: User(userNo=1, id=admin, email=admin@naver.com) User(userNo=1, id=admin, email=admin@naver.com) User(userNo=1, id=admin, e
NullPointerException, NumberFormatException
try-catch 예외를 처리할 때 사용하는 코드
UpDownGame 클래스 > # Main 클래스
예외 연습 문제(BankException)
예외 처리 연습 문제(Employee)
컬렉션 프레임워크 - 리스트
컬렉션 프레임워크 - Set
Hash Map Tree Map
Iterator 인터페이스 특정 컬렉션(interface Collection)에 등록해서 사용
File 클래스 패키지 : java.io 파일 및 디렉터리 관리 생성 방법 1) new File(경로, 파일) 2) new File(파일) 자바의 경로 구분 방법 : 백슬래시(\) 리눅스의 경로 구분 방법 : 슬래시(/)
Writer(CSVWriter, XMLWriter, JSONWriter)
# FileReader # BufferedReader # CSVReader #XMLReader #JSONReader
#Java #IO #outputstream #inputstream
#Java #IO #연습 문제
변수, 자료형, 연산자, 연산자 연습문제(최저시급)
속성 호출, 변경
롬복 다운, 실행
Data Source Explorer 설정방법