본문 바로가기

728x90
반응형

Java

(39)
수익금 계산기 update 그동안 자바를 더 배우고 나서 고쳐야지 못해먹겠다고 생각하고 손 놓고 있던 수익금 계산기를 다시 건드리고 있다. 일단 대충 완성했었는데 다시 손보는 이유는 console에서 사용자가 직접 변수를 입력해서 받아오게 만드는 법을 배웠기 때문이다. 그건 Scanner 라는 java 문법을 이용하는건데, 관련 정리는 블로그 다른 포스팅에서 이미 했기 때문에 링크만 첨부하겠다. https://angehende-ingenieur.tistory.com/61 국비 교육 2일차 근데 뭐 2일차인게 중요한것도 아니고 다음부터는 배운 내용을 제목으로 해야겠다. 일단 오늘은 배운 내용을 정리해보자면 데이터 형과 변수에 대해서 배웠다. 당연히 다 아는 내용일거라 생각 angehende-ingenieur.tistory.com 여..
상속과 생성자 부모 class 에 생성자가 있는 채로 상속을 받았다면, 그 부모 class 를 상속받는 자식 class도 생성자를 가져와야한다. java에서는 그렇게 강제되어 있다고 하는데여 class Cal{ int v1, v2; Cal(int v1, int v2){ this.v1=v1; this.v2=v2; } } //에러남 class Cal3 extends Cal{ } public class InheritanceApp { public static void main(String[] args) { Cal c = new Cal(2, 1); Cal3 c3 = new Cal3(); } } 이렇게 부모 class 인 Cal 에 생성자가 있으면 자식 class에 오류가 난다. 오류를 해결해주기 위해서는 자식 class에도 부..
this & super this 는 저번에도 배웠다시피 자기자신, 그것도 instance를 가르킬때 써주는 기능이다. 아 솔직히 설명하라하니까 모르겠다. 다시 보고 와야지 // 내가 마지막 정리로 class가 instance화 되었을때 그 instance를 가르키는게 this라고 적었다. 그냥 이렇게 외우는게 빠를듯 여튼 super는 자기 자신이 아니라 상속받고 있는 부모를 가르키는 기능이다. 그래서 이런 식으로 써줄 수 있다. class Cal{ public int sum(int v1, int v2) { return v1+v2; } //Overloading public int sum(int v1, int v2, int v3) { // this 는 자기자신, 그것도 instance를 가르키는 것. return this.sum(..
Overriding vs Overloading 하필 또 이름이 비슷해서 헷갈리게 하는 기능이 있단다. Overriding과 Overloading이 있는데 후자는 상속과 아무런 관련이 없다는데요? 흠.. 그래도 무슨말인지 보아하니.. java에서는 같은 이름의 method도 기능만 다르면 사용가능하다. 그래서 아래처럼 class Cal{ public int sum(int v1, int v2) { return v1+v2; } // 아래 method는 위의 sum과 이름이 같지만 정수 3개를 더해주는 다른 기능을 쓴다 // 이걸 Overloading이라고 부른다. public int sum(int v1, int v2, int v3) { return v1+v2+v3; } } class Cal3 extends Cal{ public int minus(int v..
Overriding 아까 쓴 코드는 그냥 Cal 의 기능을 연장해왔을 뿐 더해준 기능이 없다. 활용을 위해서는 연장을 해줘야한다 class Cal{ public int sum(int v1, int v2) { return v1+v2; } } class Cal3 extends Cal{ public int minus(int v1, int v2) { return v1-v2; } } public class InheritanceApp { public static void main(String[] args) { Cal c = new Cal(); System.out.println(c.sum(2, 1)); Cal3 c3 = new Cal3(); System.out.println(c3.minus(3, 10)); } } 이걸 보면 Cal3 에..
Java에서 상속 객체 지향에서 method, class, instance에 대한 개념을 이해했다면 다음에 들을 수업이 이 상속 수업이다. 사실 멀 얼만큼이나 이해했는지는 모르겠지만 일단 국비교육전에 들을 수 있는 것들을 전부 듣고 시작할 예정이다. 먼저 간단한 계산기 프로그램을 아래와 같이 만든다. class Cal{ public int sum(int v1, int v2) { return v1+v2; } } public class InheritanceApp { public static void main(String[] args) { Cal c = new Cal(); System.out.println(c.sum(2, 1)); } } 써놓고 보니 진짜 간단한데 과연 이걸 내가 아무것도 안보고 혼자서 쓸 수 있을까? 라는 의..
객체지향 프로그래밍 활용~ 하하 영상은 열심히 봤는데 도통 머리에 제대로 남은게 맞나 의심이 간다 일단 class를 활용하는 방법과 그 이유를 다시 한 번 되짚어 보자면.. 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) { Accounting.valueOfS..
정신 꽉붙잡아 this 생성자 정말.. 뭐에 홀린 인간처럼 공부를 게을리 하고 있는 인간 다시 정신 붙잡고 java 객체지향이라도 끝내야겠다 휴... class Print{ public String delimiter = ""; public void A() { System.out.println(delimiter); System.out.println("A"); System.out.println("A"); } public void B() { System.out.println(delimiter); System.out.println("B"); System.out.println("B"); } } public class MyOOP { public static void main(String[] args) { Print p1 = new Print()..
망했다 static 저번 static 강의를 졸면서 봤더니 이번 강의가 무슨 말인지 이해가 안간다. 이 그림을 이해하는 것을 포스팅의 최종목표로 하고 다시 이전 static 강의부터 다시 들어야겠다. 다시 한 번 static - class method no static - instance method 일단 이걸 마음속에 다시 한 번 새기고 시작하자 그리고 바꾸기 전 코드를 먼저 써보겠다. class Print{ public static void a(String delimiter) { System.out.println(delimiter); System.out.println("a"); System.out.println("a"); } public static void b(String delimiter) { System.out.p..
Instance 개념 이해가 가장 중요한 부분이라서 계속해서 반복해서 듣고있는 기분 일단 Class가 뭔지 제대로 이해했다면 그 다음에 class를 복제해서 사용하는 instance를 배우면 된다. 사실 이미 nct 굿즈박스 비유로 모든것을 이해했다. nct dream 포카를 뽑는 기능을 만들었으면 다른 nct에도 적용해야하지 않겠냐 이거다. nct dream class를 복제해서 nct u instance를 만들어준다. 그리고 그걸 잘 써먹으면 된다. 이거다. 위의 내용을 코드로 이해해 보자면... class Print{ public String delimiter = ""; public void A() { System.out.println(delimiter); System.out.println("A"); System...

728x90
반응형