본문 바로가기

자바/정리

(28)
(JAVA)Overriding 과 Overloading Overriding 과 Overloading. 갈수록 개념이 어려워 지고 있다. 힘들어도 계속 나아가다 보면 익숙해질 날이 올거라고 믿는다. 오버라이딩(Overriding) 뭔가 더 탑승 시켜서 본질을 바꾸는 것이다. 상속 개념에서 자식이 부모로 부터 메서드 값을 받는데 이걸 자식이 메서드를 그대로 복사 붙여넣기로 끌고온뒤 내용을 수정해서 사용하면 그게 오버라이딩 이다. (코드를 보는게 이해가 빠를것이다.) 즉 오버라이딩을 하려면 메서드 시그니처가 일치해야 한다는 뜻이다. (메서드 시그니처 = 메서드의 변수타입, 리턴타입, 이름, 순서) 오버로딩(Overloading)은 본연의 모습은 살아 있는데 여러 값을 추가로 얹어서 여럿이서 사용하는것이다. 오버로딩은 굳이 상속과는 관련은 없다.(상속이 아닌 상황에..
(JAVA)상속2 이번에는 긴장 해야할지도 모르겠다. 이해가 안가도 천천히 읽다보면 이해가 갈수도 있다. 나는 오래걸렸다... 우리는 저번 포스트에서 기본적인 상속의 작동에 대해서 알아보았다. https://acid7937.tistory.com/17 하지만 시도해 본사람이 있을지는 모르겠지만 생성자를 만들어서 인자를 매개변수에 넣게 되면 무슨짓을 해도 저번처럼 하면 상속이 안될 것이다. 오늘은 매개변수가 있을때 어떻게 해야 하는지 알아보겠다. 혹시 생성자가 인자와 매개변수 넣는게 기억이 안나면 여길 참조하자 https://acid7937.tistory.com/16 class HCalculator { int left, right; /*public void enter (int left, int right) { this.lef..
(JAVA)상속 상속... 뭔가 느낌이 오질 않는가? 상속 받는다... 키야 기분이 좋다. 하지만 배우는 입장에서는 자바의 상속은 기분이 나쁘다. 지금 내 기분이 그렇다. 상속은 말 그대로 간단하게 A 클래스의 기능을 B 클래스에서 사용 가능하게 만드는것이다. 간단하다. 하지만 간단하지 않다... 뭔소리인지 알아보자. class HCalculator { int left, right; public void enter(int left, int right) { this.left = left; this.right = right; } public void avg() { System.out.println((this.left + this.right) / 2); } public void sum() { System.out.println..
(JAVA)생성자 생성자... 또 뭘 생성하지...? 나 같은 사람들이 있다면 클래스 파트 들어올 때부터 한숨 쉬며 시작하는 사람들이 있을수 있다고 생각한다. 생성자라는 말이 다소 생소하지만 우리는 이미 생성자를 쓰고 있었다. 예제를 보자. public class Calculator3 { int left, right; public void enter(int left, int right) { this.left = left; this.right = right; } public void avg() { System.out.println((this.left + this.right) / 2); } public void sum() { System.out.println(this.left + this.right); } public sta..
(JAVA)전역변수 지역변수 변수에 대해서는 다들 알것이다. 이전 포스트에서도 간략하게 설명하였지만 하지만 이번에는 변수가 가지는 범위에 대해서 자세히 알아볼 것이다. 변수의 범위는 두가지로 나눌수가 있다. 전역변수와 지역변수 이다. 지역변수는 메서드 내에서만 사용이 가능하고 전역변수는 다른 메서드 에서도 사용이 공통적으로 가능하다. 코드를 실행 순서대로 읽어보며 설명하겠다. public class range3 { int a= 1; //인스턴스 전역변수 static int b = 2; //클래스 전역변수 public void num() { int a=10; //지역변수 System.out.println(a); System.out.println(this.a); } static public void num2(){ System.out.p..
(JAVA)클래스 맴버, 인스턴스 맴버. 이전 글) 클래스와 인스턴스 https://acid7937.tistory.com/13 관련은 적지만...클래스 변수랑 헷갈리실 까봐) 매서드 호출 https://acid7937.tistory.com/12 이번에는 클래스 맴버와 인스턴스 맴버에 대해 알아볼것이다. 먼저 맴버란 변수와 메서드를 일컫는 말이다. 인스턴스는 클래스에서 튀어 나온 제품이고 클래스는 포괄하는 설계도 이다. 즉 클래스의 맴버는 인스턴스에서 사용이 가능하지만... 인스턴스의 맴버는 클래스에서 사용이 불가능하다. 코드로 살펴보자. public class Calculator2 { int left, right; //인스턴스 변수 static double PI = 3.1415; //클래스 변수 static int base =0; //클래스 변..
(JAVA)클래스와 인스턴스 우리는 앞선 설명에서 메서드에 대해서 알아보았다. Math.floor()에서 Math가 클래스고 floor()가 Math가 가지고 있는 하나의 기능이다. 그렇다 클래스는 하나의 큰 그룹이자 설계도이다. 우선 코드를 하나 살펴보자 public class Cexemple { public static void avg(int left, int right) { System.out.println((left + right) / 2); } public static void sum(int left, int right) { System.out.println(left + right); } public static void main(String[] args) { int left, right; left = 10; right =..
(JAVA)메서드 우리는 지금까지 Println이라는 기능을 사용해 봤을 것이다. 그런데 이게 그냥 동작하는 것이 아닌 누군가가 만들어 놓은 메서드이다. 혹은 https://acid7937.tistory.com/9 여기서 내림차순과 올림차순 코딩을 해보았는데 Arrays.sort() 메서드를 사용하여 간결하게 나타내는 법을 확인해 보았다. (Arrays는 클래스이고 sort()가 메서드 이지만 차차 설명하겠다.) 그런데 이걸 우리가 직접 만든 메서드를 사용하여 코드를 간결화시킬 수 있다. 이런 코드를 메소드를 사용하여 묶어주면 이렇게 간단해진다. 이렇게 예시를 들면 그냥 쓰는 게 빠른데?라고 말할 수 있지만 저게 천 번 만 번 사용해야 된다고 하면 생각해보면 납득이 될 것이다. 항상 println 기능을 만들어서 쓰지 않..