본문 바로가기

자바7

소수 판별 & 상속 어떤 자연수 n이 주어지면 그 자연수 n보다 작은 소수가 뭐가 있는지 출력해주는 기능을 만들것이다. 상속으로 구현하기 - 부모클래스 is_prime package prime_checker; public class is_prime { boolean is_prime_fuc(int n) { // double sqrt_n = Math.sqrt(n); for(int i=2; i < n; i++) { if(n%i == 0) return false; } return true; } } - 자식클래스 (is_prime클래스를 부모로 상속받는다) package prime_checker; public class find_prime extends is_prime{ // 상속받는 클래스, 매소드를 선언해줘야함 //매소드 //(.. 2022. 10. 21.
상속 상속이란 부모가 자식에게 물려주는 행위를 말한다. 부모 클래스를 상위 클래스라고 부르기도 하고, 자식 클래스를 하위 클래스, 또는 파생 클래스라고 부른다. 이미 잘 개발된 클래스를 재사용해서 새로운 클래스를 만들기 때문에 코드이 중복을 줄여준다. 자식 객체를 생성하면 부모객체가 먼저 생성되고, 자식 객체가 그 다음에 생성된다. 메소드 재정의 override 자식 클래스에서 부모의 메소드를 사용하지 않고 수정하여 사용할 때 메소드 재정의를 하게된다. 메소드 재정의를 하게 되면 메소드 호출 시 자식의 메소드가 호출된다. 메소드 재정의 시 주의할 점 - 부모의 메소드와 동일한 시그니처 - 접근제한을 더 강하게 오버라이딩할 수 없다. - 새로운 예외를 throws할 수 없다. 만약 부모 메소드를 호출하고 싶다면.. 2022. 10. 19.
자바 - 오버로딩 vs 오버라이딩 상속에서 사용되는 오버라이딩(overriding)과 클래스에서 메소드를 만들 때 사용되는 오버로딩(overloading)은 이름이 비슷하여 햇갈릴 수 있다. 오버로딩 overloading 한 클래스 내에서만 사용된다. 메소드의 이름이 동일하지만 매개변수의 순서, 개수, 타입 등의 요소 중 한개이상 달라야 한다. 오버라이딩 overriding 상속관계에서 사용되는 개념이다. 부모로부터 상속받는 메소드를 재정의하는 의미를 지닌다. 메소드의 이름이 같고 매개변수의 순서, 개수, 타입 등의 요소 모두 같아야 한다. 접근제한이 부모의 메소드보다 강력해서는 안된다.(같거나 낮아야 한다) class A{ public void M(){ System.out.println("부모"); } } class B extends .. 2022. 6. 10.
자바 - 기타 제어자 final 제어자 최종적인 값을 갖고 있는 필드 = 값을 변경할 수 없는 필드 public class Person{ final String nation = "Korea"; final String ssn; //아래에있는 메소드가 없어지면 오류발생 String name; public Person(String ssn, String name){ // 아래 두줄은 위에 nation을 선언해준것과 같은 기능을 해준다. this.ssn = ssn; this.name = name; } } 생성자는 final 필드의 최종 초기화를 마쳐야 하는데, 만약 초기화되지 않은 final 필드를 그대로 남겨두면 컴파일 에러가 발생한다. final 필드의 초기값을 줄 수 있는 방법 2가지 필드 선언시에 주는 것이 제일 간단 생성자로.. 2022. 5. 25.
자바 - 메소드 오버로딩 메소드 오버로딩이란 클래스 내에 같은 이름의 메소드를 여러 개 선언하는 것 같은 이름의 메소드를 중복하여 정의하는 것. 메소드 오버로딩의 특징 이름은 같더라도 매개변수의 개수나 타입을 다르게 하면, 하나의 이름으로 메소드를 여러개 작성해도 된다. 메소드에 사용되는 이름을 절약할 수 있다. 메소드를 호출할 때 전달해야 할 매개변수의 타입이나 개수에 대해 크게 신경을 쓰지 않고 호출할 수 있다. 객체지향 프로그래밍의 특징중 하나인 다형성을 구현하는 방법 메소드 오버로딩조건 1. 메소드의 이름이 같아야 한다. 2. 매개변수의 개수 또는 타입이 달라야 한다. // 1. num1 그대로 출력 void display(int num1) // 2. 두 정수의 곱 출력 void display(int num1, int n.. 2022. 5. 24.
자바 - 기본 생성자 참고자료 : http://www.tcpschool.com/java/java_methodConstructor_constructor 자바의 모든 클래스는 하나 이상의 생성자가 정의되어 있어야 한다. 하지만 생성자를 정의하지 않아도 인스턴스를 생성할 수 있다. 자바 컴파일러가 기본 생성자를 자동으로 만들어주는 기능이 있기 때문이다. 기본 생성자는 매개변수를 하나도 가지지 않으며, 아무런 명령어도 포함하고 있지 않다. class Car{ private String carName = "Modle X"; public String carCrash() { return this.carName; } } public class main { public static void main(String[] args) { Car wh.. 2022. 5. 17.
자바 - 클래스 기본 예제 (1) 예제 1 package ch01_basicGrammer; public class main { String title; String author; public main(String t) { //생성자 title = t; author = "작자미상"; } public main(String t, String a) { //생성자 title = t; author = a; } public static void main(String[] args) { main littlePrince = new main("littlePrince", "Saint Exupery"); main oldStory = new main("춘향전"); System.out.println("title :"+littlePrince.title+"\tauth.. 2022. 4. 1.