🤯TIL/JAVA

    [연산자] 삼항 연산자? (조건 ? T : F)

    삼항 연산자 : 세 개의 피연산자를 받는 연산자 세 개의 피연산자 : 조건 / 참의 경우 결과값 / 거짓의 경우 결과값 결과 = ( 조건 ) ? ( 참의 경우 결과값 ) : ( 거짓의 경우 결과값 ) int x = 3; int y = 5; int max = (x > y) ? x : y; System.out.println(max); // 5 // 3이 5보다 크다는 것은 거짓이므로 false 값인 y, 5가 출력됨 int min = (x < y) ? x : y; System.out.println(min); // 3 // 3이 5보다 작다는 것은 참이므로 true 값인 x, 3이 출력됨 boolean b = (x == y) ? true : false; System.out.println(b); // false..

    [연산자] 복합대입 연산자?

    대입 연산자 : 자신 = 자신 + 2; 복합대입 연산자 : 자신 += 2; 복합 대입 연산자 num = 10; // num = num + 2; num += 2; System.out.println(num); // 12 // num = num - 2; num -= 2; System.out.println(num); // 10 // num = num * 2; num *= 2; System.out.println(num); // 20 // num = num / 2; num /= 2; System.out.println(num); // 10 // num = num % 2; num %= 2; System.out.println(num); // 0

    [이것이 자바다 - 연습문제] chapter 08. 인터페이스

    [이것이 자바다 - 연습문제] chapter 08. 인터페이스

    0. 문제 ➡ 정답 (설명) 1. 인터페이스에 대한 설명으로 틀린 것은 무엇입니까? ➡ 인터페이스에는 인스턴스 필드를 가질 수 있다. (설명) 인터페이스는 상수와 메소드만을 구성 멤버로 가진다. 인터페이스는 객체로 생성할 수 없기 때문에 생성자를 가질 수 없다. *인스턴스 필드 : 객체 생성 2. 인터페이스의 다형성과 거리가 먼 것은? ➡ 구현 객체를 인터페이스 타입으로 변환하려면 강제 타입 변환을 해야한다. (설명) 구현 객체는 인터페이스로 자동 타입 변환을 하므로 강제 타입 변환은 X! 3. 다음은 Soundable 인터페이스입니다. sound() 추상 메소드는 객체의 소리를 리턴합니다. public interface Soundable { String sound(); } SoundableExample..

    [이것이 자바다 - 연습문제] chapter 07. 상속

    [이것이 자바다 - 연습문제] chapter 07. 상속

    0. 문제 ➡ 정답 (설명) 1. 자바의 상속에 대한 설명 중 틀린 것은 무엇입니까? ➡ 자바는 다중 상속을 허용한다. (설명) 문법적인 한계! 자바는 단일 상속만을 지원한다. ex) 다이아몬드 문제 2. 클래스 타입 변환에 대한 설명 중 틀린 것은 무엇입니까? ➡ 부모 객체는 항상 자식 타입으로 강제 타입 변환된다. (설명) X 항상 되는 것은 아니다! 3. final 키워드에 대한 설명으로 틀린 것은? ➡ final 클래스는 부모 클래스로 사용할 수 있다. (설명) final 키워드는 해당 선언이 최종 상태이고, 결코 수정될 수 없음을 뜻한다. 때문에 final 키워드를 class 앞에 붙이게 되면 이 클래스는 최종적인 클래스이므로 상속할 수 없는 클래스가 된다! 4. 오버라이딩(Overriding)..

    [이것이 자바다 - 연습문제] chapter 06. 클래스

    [이것이 자바다 - 연습문제] chapter 06. 클래스

    0. 문제 ➡ 정답 (설명) 1. 객체와 클래스에 대한 설명으로 틀린 것은 무엇입니까? ➡ 하나의 클래스로 하나의 객체만 생성할 수 있다. (설명) 하나의 클래스로 new 연산자 호출 시 호출하는 만큼 객체 생성 가능 2. 클래스의 구성 멤버가 아닌 것은 무엇입니까? ➡ 로컬 변수(local variable) (설명) 클래스의 구성 멤버는 필드 field, 생성자 constructor, 메소드 method 이다. 3. 필드, 생성자, 메소드에 대한 설명으로 틀린 것은 무엇입니까? ➡ 클래스는 반드시 필드와 메소드를 가져야 한다. (설명) 필드는 객체의 데이터를 저장한다. 반드시 x, 필드를 갖고 있지 않는 클래스도 있고, 필드만 있는 클래스도 있을 수 있다! 4. 필드에 대한 설명으로 틀린 것은 무엇입니..

    [이것이 자바다 - 연습문제] chapter 05. 참조 타입

    [이것이 자바다 - 연습문제] chapter 05. 참조 타입

    0. 문제 ➡ 정답 (설명) 1. 참조 타입에 대한 설명으로 틀린 것은 무엇입니까? ➡ 참조 타입은 null 값으로 초기화할 수 없다. (설명) null로 초기화 할 수 있다! ➡ null로 초기화 : 객체를 참조하고 있지 않다. 라는 뜻이다. 2. 자바에서 메모리 사용에 대한 설명으로 틀린 것은 무엇입니까? ➡ 참조되지 않는 객체는 프로그램에서 직접 소멸 코드를 작성하는 것이 좋다. (설명) Heap 영역에 생성된 객체는 garbage Collector가 자동적으로 수거하므로 자바에서는 직접 개발자가 코드로 객체 소멸 내용 작성이 불가능하다. 3. String 타입에 대한 설명으로 틀린 것은 무엇입니까? ➡ String 타입의 문자열 비교는 ==를 사용해야 한다. (설명) 참조 객체 비교는 == 사용 ..

    [이것이 자바다 - 연습문제] chapter 04. 조건문과 반복문

    [이것이 자바다 - 연습문제] chapter 04. 조건문과 반복문

    0. 문제 ➡ 정답 (설명) 1. 조건문과 반복문의 종류를 괄호( ) 속에 넣어 보세요. ➡ 조건문 : if, switch 반복문 : for, while, do-while 2. 조건문과 반복문을 설명한 것 중 틀린 것은 무엇입니까? ➡ switch 문에서 사용할 수 있는 변수의 타입은 int, double이 될 수 있다. (설명) switch문의 괄호에는 정수 타입의 변수나 정수값을 산출하는 연산식, String 타입의 변수가 올 수 있다. 실수 타입의 double은 올 수 없다. 3. for문을 이용해서 1부터 100까지의 정수 중에서 3의 배수의 총합을 구하는 코드를 작성해보세요. public class Exercise03 { public static void main(String[] args) { ..

    [연습문제] Getter Setter 메소드의 호출과 정의

    Getter Setter private 필드를 우회적으로 접근 private 필드를 우회적으로 변경 public 타입 get필드명 () { ;} public [void / return] set필드명() { ;} - private 필드를 우회적으로 접근 - 감춰진 필드 가져오기 : Getter - private 필드는 외부에서 직접 값을 가져올 수 없어서 외부에서 읽기 위해서는 게터 메소드가 필요함 Getter의 특징 1. getter는 private 필드를 반환하고 2. 외부 접근 가능하도록 public 선언되어야 함 3. get어쩌고로 메소드 만들어져야 함 public class PersonTest { public static void main(String[] args) { // 객..

    [이것이 자바다 - 연습문제] chapter 03. 연산자

    [이것이 자바다 - 연습문제] chapter 03. 연산자

    0. 문제 ➡ 정답 (설명) 1. 연산자와 연산식에 대한 설명 중 틀린 것은 무엇입니까? ➡ 연산식은 하나 이상의 값을 산출할 수도 있다. (설명) 연산식은 반드시 하나의 값을 산출한다. 연산자 수가 아무리 많아도 두 개 이상의 값을 산출하는 연산식은 없다. 2. 다음 코드를 실행했을 때 출력 결과는 무엇입니까? public class q2 { public static void main (String[] args) int x = 10; int y = 20; int z = (++x) + (y--); System.out.println(z); } } ➡ 31 (설명) 증감연산자 ++, -- ++ 피연산자 : 다른 연산을 수행하기 전에 피연산자의 값을 1 증가시킴 피연산자 -- : 다른 연산을 수행한 후에 피연..

    [이것이 자바다 - 연습문제] chapter 02. 변수와 타입

    [이것이 자바다 - 연습문제] chapter 02. 변수와 타입

    0. 문제 ➡ 정답 (설명) 1. 자바에서 변수에 대한 설명 중 틀린 것은 무엇입니까? ➡ 변수는 초기값이 저장되지 않은 상태에서 읽을 수 있다. (설명) 변수는 초기화가 되어야 읽을 수 있다. 2. 변수 이름으로 사용 가능한 것을 모두 선택하세요. ➡ modelName / $value / age (설명) 사용 불가 : 예약어, 숫자로 시작 사용 가능 : $와 _로 시작하는 것은 가능함 3. 다음 표의 빈칸에 자바의 기본 타입(Primitive Type) 8개를 적어보세요. ➡ 암기하기!! 크기 / 타입 1byte 2 byte 4 byte 8 byte 정수타입 byte char(+) short int long 실수타입 float double 논리타입 boolean (설명) 크기별로 타입을 정리하면 다음과..

    [이것이 자바다 - 연습문제] chapter 01. 자바 시작하기

    [이것이 자바다 - 연습문제] chapter 01. 자바 시작하기

    0. 문제 ➡ 정답 (설명) 1. JDK와 JRE의 차이점을 설명한 것 중 틀린 것은 무엇입니까? ➡ JRE에는 컴파일러(javac.exe)가 포함되어있다. (설명) JRE(Java Runtime Environment) 자바 실행 환경 = JVM(Java Virtual Machine) 자바 가상 기계 + 표준 클래스 라이브러리 JDK(Java Development Kit) 자바 개발 키트 = JRE + 개발에 필요한 도구 * JDK 내부에 컴파일러인 javac.exe가 포함되어있다. 2. JVM에 대한 설명으로 틀린 것은 무엇입니까? ➡ JVM은 운영체제에 독립적이다.(운영체제별로 동일한 JVM이 사용된다.) (설명) JVM은 운영체제에 종속적이다. 자바 프로그램을 운영체제가 이해하는 기계어로 번역해서 ..

    [JAVA 상속] Overriding / Overloading / this / super / 생성자_by생활코딩

    상속이란? 어떤 클래스가 갖고있는 메소드와 변수를 상속해서 다른 클래스가 갖도록 하는 것 ➡ 코드의 재사용성을 높이고, 유지보수 편의성을 높이고, 가독성을 높이고, 코드의 양을 줄일 수 있음 Overriding (재정의) Overloading (과적) 부모기능을 올라타서 재정의 한 것 상속과는 상관이 없다! 형태만 다르면 같은 이름의 메소드를 여러개 생성 가능 this : 자기 자신을 의미 super : 자신의 부모를 의미 출처 https://opentutorials.org/course/4408 Java 상속 - 생활코딩 수업소개 이미 존재하는 클래스에 더 많은 기능을 넣고 싶은데 그 클래스를 수정하는 것이 ..

    [JAVA 객체 지향 프로그래밍] 클래스 / 인스턴스 / static / this_by생활코딩

    [JAVA 객체 지향 프로그래밍] 클래스 / 인스턴스 / static / this_by생활코딩

    클래스 연관된 메서드 + 변수를 묶은 것 (class라는 정리정돈 상자를 통해 프로그램을 만든다 = 이것이 객체지향 프로그래밍) 클래스 ➡ 인스턴스(객체) 클래스들을 필요할 때마다 계속 소환한다면 코드와 수정이 복잡해짐 그래서 긴 호흡이 필요한 클래스들은 복제본인 인스턴스를 만들어 쉽게 접근이 가능하도록 함 인스턴스( = 객체) 어떤 상태를 가지고 있는 클래스의 복제본을 변수에 담은 것 즉, 하나의 클래스로부터 여러 개의 인스턴스를 만들 수 있다. 객체와 인스턴스 출처 : https://gmlwjd9405.github.io/2018/09/17/class-object-instance.html 객체 Object 인스턴스 Instance 소프트웨어 세계에 구현할 대상 클래..

    [JAVA method(함수)] 기본 형식 / 입력 값 / 출력 / 활용_by생활코딩

    연관된 코드를 묶어 grouping method 반영 전 코드 method 반영 후 코드 public static void main(String[] args) { // 100000000 System.out.println("-"); System.out.println("a"); System.out.println("a"); // 100000000 System.out.println("-"); System.out.println("a"); System.out.println("a"); // 100000000 System.out.println("-"); System.out.println("a"); System.out.println("a"); } public static void printTwoTime..

    [JAVA 제어문] boolean / 비교연산자 / 조건문 / 문자의 비교 / 반복문과 배열문_by생활코딩

    [JAVA 제어문] boolean / 비교연산자 / 조건문 / 문자의 비교 / 반복문과 배열문_by생활코딩

    참과 거짓에 대한 것으로 true와 false 두 가지밖에 없다. ? 에러가 나요! String true = "Hellow world // Error ➡ true와 false처럼 컴퓨터에서 이미 쓰이고 있는 키워드(예악어 reserved word) 사용불가 String foo = "Hello world"; // 사용 가능 양쪽 값을 비교 ➡ 참 / 거짓에 따라 true false 둘 중 하나의 값을 만들어내는 연산자. ex) >, if문 if(true면) {이 코드가 실행됨} else if(true면) {위 코드가 false이면서 else if가 true면 이 코드가 실행됨} else {위 코드 둘 다 true가 아니면 이 코드가 실행됨} ➡ if - else i..

    [JAVA 입문] 입력과 출력_by생활코딩

    [JAVA 입문] 입력과 출력_by생활코딩

    INPUT 입력값을 어떻게 주나? - Argument 텍스트 정보를 주는 것 - File 파일의 내용을 읽어서 입력 - Network 웹사이트 있는 정보를 다운받아서, 네트워크 이용해서 - Audio 말을 알아들어서 동작한다면 사운드 - Program 다른 프로그램의 출력 결과를 입력받기 OUTPUT 출력값 - Monitor 화면에 출력 - File 파일에 사용 - Audio 소리를 냄 - Program 다른 프로그램에 출력 showInputDialog 사용하기 String id 값을 프로그램 실행할 때마다 바꾸는 것은 좋은 일이 아니다. ? : 어떤 값을 입력할 때까지 자바는 실행을 멈춰있다가, 입력값을 넣으면 실행되도록 하게 하려면? 검색하기 : java popup input text swing St..

    [JAVA 입문] 디버거_by생활코딩

    중급자 vs 초심자 중급자는 어떤 문제가 있을 때 원인 파악도 잘하고 도구도 잘 사용함 초심자는 어떤 문제가 있을 때 원인 파악을 잘 못하는데 도구도 사용하지 못함 디버거 : 코딩이 편해질 수 있는 지름길 버그 : 우리가 짠 코드의 의도하지 않은 문제 디버깅 : 그 버그를 잡는 행위 디버거 : 디버깅을 할 때 사용하는 도구 / 문제가 있거나 분석하고 싶을 때 사용가능 디버거 실행 : 프로그램 실행 멈추기 - 멈추고 싶은 부분 행 숫자 왼편을 더블클릭 - 브레이크 포인터 생성 - 벌레모양 디버그 실행버튼 누르기 - switch 클릭 - 벌레로 바뀌면서 화면구성이 바뀜 - Step Over 누르면(디버거를 이용하면) 한 줄 한 줄 프로그램 실행시킬 수 있음 - Step Into는 코드 세부내용 확인할 수 있..

    [JAVA 입문] 프로그래밍이란?_by생활코딩

    [JAVA 입문] 프로그래밍이란?_by생활코딩

    프로그램 : 음악회의 음악 목록 ( 시간의 순서에 따라 진행되는 것들) 시간의 순서에 따라 일이 일어나는 순서들을 '프로그램'이라고 하기 시작 컴퓨터의 각각의 작업들, 그 일을 하기 위해 필요한 각각의 작업들이 시간의 순서에 따라 실행되게 할 수 있다면 자동화, automation을 할 수 있게 되는 것임 프로그래밍을 하는 이유 ? 자동화된 처리를 하기 위해서임 부품들(남이 만든 코드) 이용해서 나의 프로그램 만드는 방법 알아보기 java를 이용해서 삶의 질을 획기적으로 높이기 import 불러오기 ex) import org.opentutorials.iot.Elevator; 제일 위에 넣어서 클래스 불러오기 - 자동으로 불러오기(eclipse) 불러올 동작 입력 후 ctrl + space, 폴더 선택 후..

    [JAVA 입문] 변수_by생활코딩

    [JAVA 입문] 변수_by생활코딩

    변수란? Variable 데이터에 붙이는 이름, 그 값이 변할 수 있는 문자 언어들의 변수는 음료수의 용기와 같다. 변수에 따라 정의가 다른 내용이 들어있을 경우 에러가 난다. 자바는 변수의 데이터 타입을 지정한다. 대신, 값을 넣을 땐 굉장히 까다롭다. int = integer_인티져 정수 자연수 : 1, 2, 3, 4, ... 정수 : -3, -2, -1, 0, 1, 2, 3, ... cf) int b = 1.1; 설정할 경우 오류가 뜬다. 1.1은 real number = 실수(정확하진 않지만 java에선 double이라고 함) double 실수 double b = 1.1; System.out.println(b); String 문자열 String c = "Hello World"; System.out..

    [JAVA 입문] 문자열 다루기_by생활코딩

    [JAVA 입문] 문자열 다루기_by생활코딩

    String 작성 시 꼭 큰 따옴표 "" 사용해야 하나요? 네! - System.out.println("Hello World"); // String Character가 모여있는 문자열 - System.out.println('hello world'); // Character 한 글자를 표현함 / 문자 의미가 달라지기 때문에 사용하지 마세요! 줄바꿈을 하고 싶을 때 \n 삽입 System.out.println("Hello \nWorld"); \n은 역슬래시 + n이므로, 엔터키 위 or 옆의 \ 를 사용해야 한다. 문자 안에 큰 따옴표 넣고 싶을 때 \ 삽입 System.out.println("Hello \"World\""); 원래 큰 따옴표는 문자의 시작과 끝을 알리는 특수한 문자다. JAVA 입장에선 \..

    [JAVA 입문] 숫자와 연산_by생활코딩

    [JAVA 입문] 숫자와 연산_by생활코딩

    class 파일 빠르게 생성하기 NEW - JAVA CLASS - NAME 설정 - public static void main ~ 체크 - 내용 입력 Math. 명령을 통해 JAVA로 여러가지 수학 작업을 할 수 있다. 계산기만으로는 구할 수 없는 엄청난 수학의 세계를 불러낼 수 있다. System.out.println(Math.PI); System.out.println(Math.floor(Math.PI)); // 바닥 = 내림 System.out.println(Math.ceil(Math.PI)); // 천장 = 올림 수업 완료 인증 출처 : https://opentutorials.org/course/3930/26657 생활코딩_JAVA 입문 숫자와 연산 - 생활코딩 수업소개 이 수업에서는 가장 중요한 ..

    [JAVA 입문] 데이터와 연산_by생활코딩

    [JAVA 입문] 데이터와 연산_by생활코딩

    프로젝트 생성 및 파일 생성 new project 생성 시 파일 경로 설정 유의하기! 잘못 설정하면 오류 뜨고 class 파일 자동생성 안된다. 기본형식 public class Datatype(파일명과 동일){ public static void main(String[] args) { System.out.printIn(); 자동완성 기능 sout 입력 후 ctrl + space / 또는 sysout 입력 후 ctrl + space 일반 숫자와 String 문자 안의 숫자 구분이 중요한 이유 각각의 데이터 타입별로 어울리는 연산들이 다르기 때문에 엄격하게 분리할 필요가 있다. ex) 숫자 : + , - , % , x 문자 : x 불가능, length 함수 적용 가능 수업 완료 인증 출처 : https://o..