본문 바로가기

연습하기/자바의 정석11

자바의 정석 ch6 객체지향 객체=Object 객체지향개념을 왜 도입했나? 적은 노력으로 유지보수 코드의 중복을 제거 재사용성 높임 객체지향 4가지 핵심특징 1. 캡슐화 2. 상속 3. 추상화 4. 다형성 객체지향개념은 규칙이다. 일단 외우기!! 이해보다는 실습을 위주로 하기 과자틀, 제품 설계도 → 클래스 (Class) 과자틀에 의해서 만들어진 과자들 , 제품→ 객체 (Object) 특정 클래스로부터 생성된 객체 =인스턴스 클래스는 객체를 정의 해 놓은것 클래스는 객체를 생성하는데 사용 클래스-----인스턴스화----->인스턴스(객체) 객체=속성(변수)+기능(메소드) 클래스가 왜 필요한가? 객체를 생성하기 위해 객체가 왜 필요한가? 객체를 사용하기 위해 객체를 사용한다는것은? 객체가 가진 속성과 기능을 사용하려고 객체 변수는 서로.. 2022. 12. 11.
자바의 정석 챕터 4-1 조건문 if문, switch문 if (조건식) { //조건식이 참일때 수행될문장 } else if(조건문2){ //위에식 거짓일때 이거 따져본다 } }else{ //조건식 만족하지않을때 거짓일때. 생략가능 } str.equals("yes") str는 ==대신 equals쓴다 블럭 { } 여러 문장을 하나로 묶어주는것 switch문 처리해야할 경우의 수가 많을때 유용한 조건문 조건식을 계산한다 조건식의 결과와 일치하는 케이스문으로 이동한다 이후의 문장들을 수행한다 break문이나 스위치문의 끝을 만나면 빠져나간다. switch(조건식) { case 값1 : break; default : 없을때 빠져나감 if문은 트루 폴스 두가지 스위치문은 제약조건이 있다. 그럴땐 if else문쓰기 간단하게 스위치로 바꾸.. 2022. 12. 4.
자바의 정석 챕터3-2 1. 형변환 연산자 형변환이랑 변수 또는 상수의 타입을 다른 타입으로 변환하는 것 int--->char ====>(char)65 : 'A' 유니코드 문자표에 의해서 변화된다. char--->int =====>(int)'A' : 65 2. 자동 형변환 형변환을 생략하면 컴파일러가 자동으로 형변환을 해준다. 기존의 값을 최대한 보존할 수 있는 쪽으로 자동 형변환이 된다. float f = 1234; //int타입의 값을 플로트 타입의 변수에 저장 원래는 대입 연산자의 타입이 일치해야되는데 자동으로 형변환을 시켜준다. 큰걸 작은거에 넣으면 문제없지만 작은걸 큰거에 넣으면 문제있음. 값 손실이 된다. 3. 산술 변환 연산전에 피연산자의 타입을 일치시키는 것 보다 큰 타입으로 두 연산자의 타입을 같게 일치시킨다... 2022. 12. 4.
자바의 정석 챕터3-1 연산자 : 연산을 수행하는 기호 피연산자 : 연산자의 연산 수행 대상 연산자의 종류 산술연산자-사칙연산과 나머지 연산 비교연산자-크고작음과 같고 다름을비교 논리연산자-그리고와 또는 으로 조건을 연결 대입연산자-우변의 값을 좌변에 저장 연산자들간의 우선순위 하나의 식에 연산자가 둘 이상 있을때 어떤 연산을 먼저 수행할지 자동으로 결정하는것 상식적으로 생각하기^^ 확실하지 않으면 괄호로 수동으로 묶어주기 연산자간의 결합규칙 보통 왼->오 대입, 단항연산자만 오>왼 산술>비교>논리>대입 순서 단항>이항>삼항 단항 연산자와 대입 연산자를 제외한 모든 연산의 진행방향은 왼>오 증감연산자 부호 연산자 -는 피연산자의 부호를 반대로 변경 +는 아무런 일도 하지않는다(실제 사용안함) 2022. 11. 9.
자바의 정석 챕터 2 - 3 화면에서 입력받기 Scanner란? 화면으로부터 데이털ㄹ 입력받는 기능을 제공하는 클래스 스캐너 사용하려면... 1.import문 추가 2.Scanner객체의 생성 받아들여라...! Scanner scanner = new Scanner System. in ; 3. 스캐너 객체를 사용 int num = scanner.nextInt(); // 화면에서 입력받은 정수를 num에 저장 String input = scanner.nextLine(); // 화면에 입력받은 내용을 input에 저장 오버 플로우 계수기가 셀수있는 최대값을 넘어설때 오버플로우라고 한다 2진수와 10진수 비교하기 1111이 최대 9999가 최대 오버플로우 발생! 0000 0000 --->정수의 오버플로우이다 최대값에 +1 ---->최소값 .. 2022. 11. 7.
자바의 정석 챕터 2-3 주말동안 소홀했습니다...자버지만 믿고 달리겠습니다...!! 믿습니다!! 변수 기본형의 종류와 크기 실수형은 실수를 부동포인트 플로트형식으로 저장=떠다닌다 double은 float보다 크기가 2배라서 더블 정수형의 디폴트는 int타입 실수형의 디폴트는 double임 1byte=8bit 1bit=2진수 한자리 0,1만 저장가능 2bit= 00,01,10,11---- 2^2 개 n비트로는 2^n 개 표현 가능 n비트로 표현할 수 있는 부호없는 정수의 범위 = 2^n -1 n비트로 표현할 수 있는 부호있는 정수의 범위= -2^n-1~2^n-1 -1 -128~127 0~255 부호 유무따라 값의 범위가 달라진다------책확인하기! 부호비트 0이면 양수 1이면 음수 byte -128~127 8bit short .. 2022. 11. 7.
자바의 정석 챕터2-2 리터럴의 접두사와 접미사 논리형 T/F 정수형 접미사 L 실수형 접미사 f,d(생략가능) 문자형 문자열 bloolean power = true; char ch = 'A'; String str = "ABC"; byte b =127; byte는 -128~127까지만 가능 byte b = 128; //error int i = 100; int oct = 0100; // 8진수 int hex = 0x100; //16진수 long 1 = 10_000_000_000L:----L생략불가 float f = 3.14f; f생략불가 double d = 3.14d; 10.-----10.0 .10----0.10 실수형 접미사 없음 더블타입 10f-----실수형 le3------1000.0d(생략가능) e는 10의 n제곱 실수형.. 2022. 11. 7.
자바의 정석 챕터2 이클립스 단축키 설정 방법 eclipse>preference>general>keys 여기서 설정 가능 하다. 맥이라 강사님의 단축키가 하나도 안맞다. 앞으로 하나하나 찾아가면서 해야될듯 자동완성은 커맨드 스페이스가 스포트라이트 단축키라 내가 임의로 위쪽방향키 스페이스로 변경했다. 기억해두기!!! 1. copy line : option+command+밑방향키 2. 지우기 : command + D println 은 출력후에 줄을 바꾸는 명령 print 는 줄 안바꿈 변수(Variable)란 무엇인가? 하나의 값을 저장할 수 있는 메모리 공간(RAM) 1. 변수의 선언 값data을 저장할 공간을 마련하기 위해 변수 선언 2. 방법 변수타입 변수이름; ex) int age; 3. 변수에 값 저장하기 int ag.. 2022. 11. 5.
맥에서 이클립스 자동완성 사용하기 preference 에서 자동완성을 설정하면 된다고 하는데 맥에는 windows>preference 이 경로로 찾을수가 없었다. 상단 메뉴바의 eclipse>preference>templet에서 설정할수있다. 근데 command+space 는 맥 단축키로 spotlight 검색단축키이다. 그러므로 이클립스>프리퍼런스>keys>content assist에서 방향키+스페이스로 바꿔주었다. 2022. 11. 4.
이클립스 프로젝트 클래스 생성시 패키지 이름 오류 자바의 정석 챕터2 수업 1분만에 오류 발생했다. 이클립스에서 프로젝트를 생성하고 클래스를 만들자 마자 에러 발생 Must declare a named package because this compliation unit is associated to the named module 이게 무슨말...? 검색하니 버전이 달라서 그렇다고 한다. JavaSE-1.8로 설정하면 해결할수있다는 공부 슨배림덜의 방법대로 했다. 안된다. 이럴때는 위의 module-info.java 를 지워주면 오류가 없어진다. 저파일은 패키지마다 모듈의 내용을 적는 파일이라고 한다. 뭔데 계속 지워줘야되는거지? https://wakestand.tistory.com/607 이클립스 자바 프로젝트 생성 시 module-info.java 안.. 2022. 11. 4.