분류 전체보기 (224) 썸네일형 리스트형 Refactoring 생산한 물건에 문제가 생기면 다시 리콜이라든가 뭘 해서 공장에 돌려보낸다. 코드도 심히 비효율적이라거나 문제가 있다면 리팩토링해서 돌려보내서 더 효율적인 코드로 개선할 필요가 있다. 아까 완성한 코드를 리팩토링 해보도록 하겠다. 그래 쓰면서도 뭔가 너무 길고 지저분해보였다. 공장에 다시 돌려보낼 필요가 있는 코드 저 위에 있는 document.querySelector('#night_day')라는 코드는 위에 있는 버튼 자기 자신을 가르키는 코드이다. 근데 이게 너무 길어지기도 하고, 아이디 값을 매번 새로 줘야하기 때문에 반복적이다. 그래서 자기 자신을 가르키는 명령어인 'this'를 활용해서 아래와 같이 바꿔준다. 조건문 if와 else 구문 쉽다. 이미 안다. 그래서 코드만 간단히 적어보겠다 Conditional Statesments IF-true IF-false 처음 if true 조건문에서는 바로 뒤에 나온 .write("2";)가 true 이기 때문에 else인 3이 출력되지 않고, 다음 if false 조건문에서는 뒤에 나온 .write("2";)가 false 이기 때문에 else인 3이 출력되어 나온다. 음... 알고 있다. 그래서 이걸 실전에 적용해보면 어떻게 나오는지 한 번 봐야지 아래의 코드는 저번에 만들어 뒀던 야간모드 버튼을 하나로 퉁친 코드이다. 버튼 아이디 자체가 night_day 이기때문에 주야간모드를 넘나드는 버튼이라고 생각하면 된다. 버튼의 value가 night 일때는 바탕을 검정으로, 글자.. 비교연산자와 불리언 프로그래밍을 접해본 사람이라면 문법 부분을 건너 뛰고 들으랬지만 복습 하는겸 그냥 다 들을려한다. Comparison operator & Boolean === 1===1 1===2 '==='는 비교 연산자로 왼쪽에 있는 값과 오른쪽에 있는 값이 같은지 비교하는 것 즉 1===1 은 맞으니까 'true'라는 값을 내보내고 / 1===2는 틀리기 때문에 'false'라는 값을 내보낸다. 여기서 true와 false가 boolean이다. 불리언은 number, String과 같은 데이터 타입 중 하나이다. Javascript 내가 살던 고향은 자바스크립트~ 고향까진 오바고 여튼 처음 접해봤다고 여전히 제일 편한 언어가 자바스크립트. 자바 선행을 얼마까지 해야할지 모르겠어서 그냥 다시 자바스크립트로 왔다. 어차피 엑스형 프로젝트 완성도 다 못했고 자바스크립트+데이터베이스까지 공부해봐야겠다. 일단 이미 들었던 생활코딩 자바스크립트를 다시 복습중이다. 오늘 했던거는 쿼리셀렉터로 바디 태그를 선택해서 배경색+글자색을 바꾸는 코드이다. 이 기능을 사용자가 쓰기 위해서는 버튼을 눌러야한다. 그래서 버튼에 onclick 속성을 만들고 거기에 배경색 글자색이 바뀌어서 야간모드가 가능하게 하는 버튼을 만들어봤다. 상속과 생성자 부모 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.. 이전 1 ··· 16 17 18 19 20 21 22 23 다음