본문 바로가기

OLD/자바19

배열 메소드의 소환 1234567891011121314151617class referenceParamEx2 { public static void main(String[] args) { int[] x = new int[] { 10 }; System.out.println("메인 메소드의 소환-->main():X=" + x[0]); change(x); System.out.println("메소드 소환후-->After change(x)"); System.out.println("최종 메인 메소드-->main():X=" + x[0]); } static void change(int[] x) { x[0] = 1000; System.out.println("메소드 소환--> change():X=" + x[0]); }} Colored by Co.. 2017. 5. 25.
기본형 매개변수 VS 참조형 매개변수 1234567891011121314151617181920212223242526272829class Data { int x;} class ReferenceParamEx { public static void main(String[] args) { // 항상 시작은 main부터 시작이 되며 Data타입이 존재하기 때문에 상단의 class가 Data가 존재해야 한다. // 이후 Data 클래스 안의 멤버변수안에 접근이 가능하다. // 멤버변수의 접근은 참조변수의 경우 인스턴스를 생성후에 접근을 해야 한다. // d.x를 통해 x의 값이 10으로 설정을 한다. // 이후 change()의 메소드를 실행하는데 자연스럽게 satic이 붙은 메소드가 실행이 되며 d.x=1000을 통해 전역변수의 //d.x의 값은 10.. 2017. 5. 25.
Super()-조상 클래스의 생성자 Object클래스를 제외한 모든 클래스의 생성자 첫 줄에는 생성자 this() 또는 super()를 호출해야 한다. 그렇지 않으면 컴파일러가 자동적으로 super()를 생성자의 첫 줄에 삽입한다. 인스턴스를 생성 할때는 클래스를 선택하는 것만큼 생성자를 선택하는 것도 중요한 일이다. 1.클래스- 어떤 클래스의 인스턴스를 생성할 것인가?2. 생성자- 선택한 클래스의 어떤 생성자를 이용해서 인스턴스를 생성할 것인가?12345678910111213141516171819202122232425262728293031class PointTest2 { public static void main(String[] args) { Point3D p3 = new Point3D(); System.out.println("p3.x=.. 2017. 5. 1.
오버라이딩의 조건 오버라이딩은 메서드의 내용만을 새로 작성하는 것이므로 메서드의 선언부는 조상의 것과 완전히 일치해야 한다.그래서 오버라이딩이 성립하기 위해서는 다음과 같은 조건을 만족해야 한다. 자손 클래스에서 오버라이딩하는 메서드는 조상 클래스의 메서드와 -이름이 같아야 한다.-매개변수가 같아야 한다.-변환타입이 같아야 한다. 한마디로 요약하면 선언부가 서로 일치해야 한다는 것이다. 다만 접근 제어자와 예외는 제한된 조건 하에서만 다르게 변경할 수 있다. 1. 접근 제어자는 조상 클래스의 메서드보다 좁은 범위로 변경 할 수 없다. 2. 조상 클래스의 메서드보다 많은 수의 예외를 선언할 수 없다. 2017. 5. 1.
자바-생성자 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 package p278; /* ⓐ 생성자 인스턴스가 생성될 때 호출되는 인스턴스 초기화 메서드이다. 따라서 변수의 초기화 작업에 주로 사용되며, 인스턴스 생성 시에 실행되어야 할 작업을 위해서도 사용된다. 생성자 역시 메서드처럼 클래스내에서 선언되며, 구조도 메서드와 유사하지만, 리턴값이 없다는 점이 다르다. 그렇다고 해서 생성자 앞에 리턴값이 없음을 뜻하는 키워드 void를 사용하지 않고, 단지 아무것도 적지 않는다. 생성자의 조건은 다음과 같다. 1. 생성자의 이름은 클래스의 이름과 .. 2017. 4. 27.
자바-오버로딩에 관해서 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 package p278; class p283 { /* * 오버로딩이란? 메서드도 변수와 마찬가지로 같은 클래스 내에서 서로 구별될 수 있어야 하기 때문에 각 기 다른 이름을 가져야한다. * 그러나 자바에서는 한 클래스 내에 이미 사용하려는 이름과 같은 이름을 가진 메서드가 있더라도 매개변수의 개수 또는 타입이 다르면, * 같은 이름을 사용해서 메서드를 정의할수 있다. 이처럼, 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것을.. 2017. 4. 24.