KIC/JAVA
-
day22 - JAVA (자바 , 접근 제한자, 예외 처리(Exception Handle))KIC/JAVA 2021. 7. 17. 17:21
[접근 제한자] [접근 제한자 ex] [다른 패키지의 Modifier2 클래스] package javaPro.java_modifier2; public class Modifier2 { private int v1 = 10; int v2 = 20; // (접근 제어자 default로 설정) protected int v3 = 30; public int v4 = 40; @Override public String toString(){ return v1 + ", " + v2 + ", " + v3 + ", " + v4; } } [modifierEx] package javaPro.java_modifier; import javaPro.java_modifier2.Modifier2; /* * 접근 제한자. * private ..
-
day21 - JAVA (inner class, static 내부 클래스, non-static 내부 클래스, 지역 내부 클래스, 무명 클래스)KIC/JAVA 2021. 7. 17. 00:57
[inner class] -> 클래스 내부에 다시 클래스를 선언해야 하는 경우가 있다. -> 이렇겍 클래스 내부에 들어 있는 클래스를 내부 클래스라고 한다. -> 내부 클래스(중첩 클래스: nested class)는 바깥 클래스(Outer class)의 다른 멤버(메소드, 멤버변수를 말함) 와 같은 클래스의 멤버가 된다. -> 내부 클래스는 다른 클래스 멤버와 마찬가지로 접근 속성을 가질 수도 있으며, 바깥 클래스 외부에서의 접근가능 여부는 접근 제어자에 의해 결정된다. [static 내부 클래스] -> static 내부 클래스(static inner class)는 내부 클래스의 객체를 바깥 클래스에 대해 독립적으로 만들 때 사용 -> static 키워드를 가진 내부 클래스로, 멤버 변수나 메소드처럼 클..
-
day20 - JAVA (자바 , 인터페이스, final, static)KIC/JAVA 2021. 7. 16. 21:21
[인터페이스] -> 인터페이스 내에는 상수 또는 추상 메서드들만 정의가 가능하다. -> 사용하기 위해서는 일 반 클래스에서 구현(implements)력을 가져야 한다. -> 일반 클래스에서 “implements"라는 예약어로 특정 인터페이스를 구현하겠다고 명시한다. -> 명시한 인터페이스가 가지는 추상 메서드들은 구현 받은 클래스에서 하나도 빠짐없이 Overriding(재정의)해야 한다. -> jdk 8.0 이후부터 인터페이스도 구현부를 가진 메서드를 멤버로 가질 수 있다. -> 만약 다중 상속시에 중복되는 메서드가 있을 경우 꼭 상속받은 클래스에서 해당 메서드를 재정의 해줘야 한다. -> 인터페이스는 implements 를 사용해서 일종의 상속을 구현한다. 인터페이스를 상속 받을 때에는 extends ..
-
day19 - JAVA (자바 , 상속, super, Object 클래스, 오버라이딩, 다형성, 추상 클래스, pakage/import)KIC/JAVA 2021. 7. 16. 02:50
[상속] • 객체지향 개념의 가장 중요한 코드의 재사용을 프로그램으 로 구현하는 부분이다. • 새로운 클래스를 생성할 때 처음부터 새로 작성하는 것이 아니라, 기존에 정의된 클래스로부터 중복되는 부분을 물려받아서 사용할 수 있다. 이후 새로운 클래스에서 추가되는 부분만 고심해서 프로그래밍하면 된다. • 프로그램을 전체를 새로 개발한 것이 아니므로 프로그램 개발기간의 단축과, 비용의 감소를 가져올 수 있고, 이미 실 시스템에서 안정적으로 돌아가는 코드부분을 사용하기 때문에 시스템이 더 안정적이다. -> extends를 중심으로 왼쪽이 서브 클래스이고 오른쪽이 슈퍼클래스이다. [super] -> super 레퍼런스: 슈퍼클래스를 가리키는 레퍼런스 -> super()메소드: 슈퍼클래스의 생성자를 호출 -> t..
-
day18_2- JAVA (자바 , 변수의 초기화, toString)KIC/JAVA 2021. 7. 15. 23:06
[변수의 초기화] -> 명시적 초기화 -> 초기화 블록 -> 생성자 [명시적 초기화] -> 변수를 선언과 동시에 초기화 하는 것 [초기화 블록] -> static 초기화 블럭, 인스턴스 초기화 블럭이 있다. -> staitc 초기화 블럭 - static 변수들의 초기화에 사용 -> 인스턴스 초기화 블럭 - 인스턴스 변수들의 초기화에 사용 [예시] -> 인스턴스 변수의 초기화는 생성자를 많이 사용해서 인스턴스 생성자 블럭은 잘 사용 안함 -> 초기화 블럭은 코드의 중복을 줄이기 위해서 사용 [멤버 변수 초기화 순서] [toString] -> 반복해서 출력해야할 문장이 길다면 toString을 활용 -> 우클릭 -> source -> generate toString() 선택하기 -> 간단하게 작성 가능 ->..
-
day18_1- JAVA (자바 ,static 메서드, 인스턴스메서드, 메서드 오버로딩, 생성자, this)KIC/JAVA 2021. 7. 15. 23:02
스태틱과 인스턴스의 차이 -> 스태틱은 변수 선언 시에 메모리 할당 -> 인스턴스는 new로 객체화 할때 메모리 할당 -> 즉 스태틱의 메모리 할당 시점이 더 빠르다는 것이 기억할 점 [static 메서드(클래스 메서드)] -> static 메서드로 표현 가능. static이 붙어있으면 클래스 메서드, 붙어있지 않으면 인스턴스 메서드이다. -> static 메서드는 변수의 선언이 될 때 바로 생성이 된다. new 연산자를 생성하지 않아도 바로 불러 쓸 수 있다. -> static 메서드는 durtl static 변수 처럼 객체를 생성하지 않고도 '클래스이름.메서드이름' 와 같은 식으로 호출이 가능 -> 메서드 내에서 인스턴스 변수를 사용하지 않거나, 클래스(static) 변수만 사용하는 메서드들은 sta..
-
day17- JAVA (자바 ,객체지향언어, 변수, 클래스변수, 인스턴스변수, 메서드, 매개 변수)KIC/JAVA 2021. 7. 15. 17:05
[객체지향언어] -> 코드의 재사용성이 높다. -> 코드의 관리 용이 -> 신뢰성이 높은 프로그래밍 가능 -> 유지보수가 용이 -> 비용이 줄어들게 된다. [객체의 구성 요소] -> 속성과 기능으로 구성되어 있다. -> 속성은 맴버 변수로 기능은 메서드로 표현 된다. -> 인스턴스는 같은 클래스로 선언된 참조변수를 통해 다룰 수 있다. -> 메서드의 내용은 모든 인스턴스에 대해 동일하다. (동일한 틀) -> 참조 변수에는 하나의 값만이 저장될 수 있다. 둘 이상의 참조변수가 하나의 인스턴스를 가리키는 것은 가능하지만 하나의 참조변수로 여러 개의 인스턴스를 가리키는 것은 불가능 클래스 - 데이터와 함수의 결합 1) 변수 - 하나의 데이터를 저장할 수 있는 공간 2) 배열 - 같은 종류의 여러 데이터를 하나..
-
day16 - JAVA (자바 예제)KIC/JAVA 2021. 7. 14. 17:36
[로또 뽑기 예제] package javaPro.java_array; import java.util.Arrays; public class ArrayEx31 { public static void main(String[] args) { int[] balls = new int [45]; int[] lotto = new int [6]; for(int i = 0; i < balls.length; i++){ balls[i] = i+1; } for(int i = 0; i < 1000; i++){ int f = (int)(Math.random()*45); // 0부터 44 까지 랜덤 수를 주기 때문에 사실상 인덱스를 뜻함 int t = (int)(Math.random()*45); int tmp = balls[t]; /..