IT/JAVA16 [16일차] JAVA 예외처리. 스레드 2022-07-11 MON inner class 형태 interface도 만들 수 있다. 원래 class ※ 참고 ※ Student.java 파일이 컴파일 => Student.class inner Class 멤버 class => Studnet$Member.class 로 바뀐다. /* Slack에서 주신 것 */ class A{ // 클래스 A 파일 만들고 class B{ // 클래스 B파일 만든다. => 멤버클래스 int field1; void method1() {}; // static 필드 및 메소드는 사용불가 } } A a = new A(); A.B b = a.new B(); // 이런 형태로 만든다. b.field1 = 3; b.method1(); innerClass가 필요한 순간이 온다. memb.. 2022. 7. 11. [15일차] JAVA Programmers 개념정리 2022-07-08 추상클래스 추상 클래스란 구체적이지 않은 클래스를 의미한다. 독수리, 타조는 구체적인 새를 지칭하는데 새, 포유류 같은 것은 구체적이지 않다. 이런 것을 구현한 클래스를 추상 클래스라고 한다. 추상 클래스 정의하기 추상 클래스는 클래스 앞에 abstract 키워드를 이용해서 정의한다. 추상 클래스는 미완성의 추상 메소드를 포함할 수 있다. 추상 메소드란, 내용이 없는 메소드 이다. 즉 구현이 되지 않은 메소드이다. 추상 메소드는 리턴 타입 앞에 abstract라는 키워드를 붙여야 한다. 추상 클래스는 인스턴스를 생성할 수 없다. public abstract class Bird{ public abstract void sing(); public void fly(){ System.out.p.. 2022. 7. 8. [15일차] JAVA 2022-07-08 다형성 polymorphism 대입되는 객체에 따라서 메서드를 다르게 동작하도록 구현하는것 이는 실행 도중 동일한 이름의 다양한 구현체 중에서 각각의 메서드를 선택할 수 있다는 것을 의미한다. 동일한 명령을 내려도 객체의 종류에 따라 다른 결과가 나타나도록 하는 프로그래밍 기술. EX) Animal 클래스의 move move() 메서드를 자식 클래스에서 수정한다면 각 객체에 적합하게 이용할 수 있다. 클래스의 멤버 = 필드 + 메서드 필드 = 멤버 변수 ( = 속성. 상태) 메서드 = 멤버 메서드 ( = 수행할 동작) 부모의 reference변수는 자식의 reference를 볼 수 없다. 실제 들어있는 메소드가 호출 Car 객체 재사용 Car라는 생성자에 두가지 타입의 엔진 완전히 분.. 2022. 7. 8. [14일차] JAVA 객체지향 필드를 만들면 초기화를 안하고 선언만 해놓고 객체를 만들면 해당 타입에 기본값만 들어가게된다. local 변수는 만들어놓고 초기화를 안하면 쓰레기 값이 들어있다. -> 책에 있는 내용 : 필드 선언은 기초 타입 변수 선언처럼 선언할 때 명시적으로 초기화할 수 있다. 그러나 지역변수와는 다르게 명시적으로 초기화하지 않으면 표 4-1 과 같이 기본값으로 초기화 된다. 자바는 함수가 없다. 메서드만 유일 C언어 / 파이썬에만 함수 있다. 메서드 처음부터 명확하게 정의할 것 new 연산자 자바에서 래퍼런스 타입의 객체를 사용할 때 new 연산자 사용 new 연산자들은 메모리 heap 메모리 객체 만든다. heap reference 값을 리턴 해준다. stack 영역에 있는 car는 local 변수로 들어감 클래.. 2022. 7. 7. JAVA Programmers 개념 정리 2차원 배열이란 배열의 배열이다. 2차원 배열 생성 방법 정수를 4개씩 담을 수 있는 배열이 3개 생성된다. int[][] array4 = new int[3][4]; 2차원 배열에 값을 저장하는 방법 만약 array4[1] = 10 ; 이렇게 사용하면 오류!! array4[1] 은 또 다른 1차원 배열을 가리킬 수 있는 참조형 변수이기 때문에 값을 담을수는 없다. array4[0][0] = 10; 가변크기의 2차원 배열을 생성하는 방법 int[][] array5 = new int[3][]; //위와 같이 선언하면 array5는 3개짜리 배열을 참조한다. 3개짜리 배열은 아직 참조하는 배열이 없다는 것을 의미. array5[0] = new int[1]; //정수를 하나 담을 수 있는 배열을 생성해서 arr.. 2022. 7. 6. [13일차] JAVA 연산자 / 제어문 for if while do while 자바 단축키 ctrl + a -> ctrl shift f 자동정렬 ctrl shift l단축키 연산자 비트 16비트 4바이트씩 0~ 2**16-1까지 표현 가능 0일때 양수를 입력 1일때 음수를 입력 -2**15~ 2**15-1 한비트씩 줄어드니깐 2의 보수법 1일때) 0 0 0 0 0 0 0 1 -1일때) 1 1 1 1 1 1 1 1 MSB 부호비트를 제외한 -2**7부터 2**7까지 표현 가능 부호비트 0 , 1 16진수 0 1 0xFFFF 0 0 0 0 1 0 1 0 (2) = 10 1 1 1 1 0 1 0 1 이러면 읽을 수 없음 0 0 0 0 1 0 1 0 (2)인데 +1 을 해줘서 0 0 0 0 1 0 1 1 이 된다. 2**3 + 2**1 + 2**0 = 11 인데 부호가 -이니깐 -11 부.. 2022. 7. 6. [12일차] JAVA 역사/ 설치/ println 탄생배경 컴파일러 언어 : c언어 C => 컴파일러 => 기계어 기계어를 실행 intel CPU 사용 cpu 자체가 명령어 셋이 다 다르다 cpu가 굉장히 많았는데 intel이 동일 cpu 컴파일 명령어가 별도로 있어야한다. os에서도 종속이 된다. c를 다른 회사의 cpu를 돌리려면 컴파일 프로그램을 머신을 다시 컴파일해야한다. 소스코드 레벨에서 호환이 된다. 애플이 맥북 cpu m2 와 intel은 완전 다르다. 바이트코드를 실행하기 위해서는 JVM(자바 가상 머신, Java Virtual Machine)이라는 특수한 가상 머신 인터프리터 언어 - 속도가 느려지는 걸 감수,, 각 cpu에 맞는 JVM 소스 코드를 컴파일한 파일을 한번 작성 하고 어디서나 사용할 수 있음 Java SE 17 (LTS) .. 2022. 7. 5. 이전 1 2 다음