본문 바로가기

Programming 기초48

[Java] super와 생성자 목차 1. super 2. 자식클래스의 생성자 super 키워드 인스턴스를 가리키는 this 키워드와 비슷하게 부모 클래스를 가리키는 super라는 키워드도 있다. super · 부모 클래스에 대한 레퍼런스 · 자식 클래스에서만 사용 -> 부모 클래스의 멤버 호출 => 자식 클래스에서 super를 이용해 접근 권한이 부여된 부모 클래스의 변수와 메소드에 접근 가능 class Cal{ public int sum(int n, int m) { return n+m; } //overloading public int sum(int n, int m, int o) { return this.sum(n, m)+o; } } class Cal3 extends Cal{ //overriding public int sum(int .. 2023. 4. 20.
[Java] overloading vs overriding 목차 1. overloading 2. overriding 3. 차이점 비슷해 보이는 용어인 overloading과 overriding의 차이는 무엇일까? overloading 오버로딩(overloading) · 한 클래스 내에, 이름이 같지만 매개변수의 타입이나 개수가 서로 다른 여러 개의 메소드를 중복 작성 · 다음 조건을 모두 만족해야 한다. 1. 메소드 이름이 동일 2. 매개변수의 타입이나 개수가 서로 다르다. ** 리턴 타입이나 접근 제어자는 관계없다. class Cal{ public int sum(int n, int m) { return n+m; } //overloading public int sum(int n, int m, int o) { return n+m+o; } } 오버로딩된 메소드를 호.. 2023. 4. 17.
[Java] 상속 목차 1. 상속 2. 자식 클래스에 기능 추가 3. 업캐스팅 2개의 클래스를 만들 때 한 클래스가 다른 클래스의 기능들을 모두 포함하는 형태라면 어떻게 해야할까? 모두 복사해서 만들어야 할까? class Cal{ public int sum(int n, int m) { return n+m; } } class Cal2{ public int sum(int n, int m) { return n+m; } public int sub(int n, int m) { return n-m; } } public class InheritanceApp { public static void main(String[] args) { Cal c=new Cal(); System.out.println(c.sum(2, 1)); } } · C.. 2023. 4. 14.
[Java] 생성자와 this 목차 1. 생성자 2. this 생성자 이전에 Print 객체를 생성할 때(인스턴스화) new Print()를 사용했다. 구분자마다 Print 인스턴스를 생성했는데, 구분자를 지정하려면 delimiter를 직접 수정해야 했다. 인스턴스를 생성할 때 delimiter를 지정할 수 없을까? -> 생성자로 초기화 생성자(constructor) · 객체가 생성될 때 자동으로 1번 호출되는 메소드(객체 초기화) · 생성자 이름 = 클래스 이름 · 여러 개 작성(오버로딩) 가능 · 리턴 타입을 지정할 수 없다. · 하나 이상 선언되어야 한다. 클래스이름(parameter, ...) { //생성자 선언 } · 기본 생성자(default constructor): 매개변수와 실행 코드가 없어 아무 작업도 하지 않고 단순.. 2023. 4. 11.
[Java] 클래스와 인스턴스 - 활용 목차 1. 클래스의 활용 2. 인스턴스의 활용 클래스의 활용 부가가치세와 총 가격을 구하는 프로그램을 클래스를 이용해 정리해 본다. 참고 https://mungje.tistory.com/28 class Accounting{ public static double valueOfSupply; public static double vatRate=0.1; public static double getVAT() { return valueOfSupply*vatRate; } public static double getTotal() { return valueOfSupply+getVAT(); } } public class AccountingApp { public static void main(String[] args) { .. 2023. 4. 8.
[Java] 인스턴스 클래스는 어떠한 틀이고, 인스턴스는 그 틀로 찍어낸 실체와도 같다. 객체를 인스턴스로 만들면, 그 인스턴스를 바꾼다고 해도 다른 인스턴스에는 영향을 끼치지 않게 된다. 기존 프로그램에서 구분자를 바꿔서 출력을 하고싶으면 구분자를 바꿀때마다 필드에 새로 대입해야 했다. class Print{ public static String delimiter; public static void A() { System.out.println(delimiter); System.out.println("A"); System.out.println("A"); } public static void B() { System.out.println(delimiter); System.out.println("B"); System.out.pri.. 2023. 4. 5.