필드란? 클래스 내부에 선언되는 객체로써 객체의 정보를 저장하는 곳 필드는 객체라고도 불리고 클래스 멤버 변수라고도 불리지만 6-2에서 다루는 내용은 필드라는 명칭이 가장 정확함 1. 객체는 필드를 포함하고 있다. 객체는 필드, 생성자, 메소드를 모두 포함하는 더 큰 단위의 명칭이다. 2. 멤버 변수는 필드이다. 하지만 클래스 변수, 지역변수, 인스턴스 변수와 같이 혼동할수있기에 필드라고 부르는 것이 좋다. 3. 필드는 필드이다. 그러므로 클래스안에 선언된 모든 정보를 저장하는 곳은 필드라고 부를 수 있다. 필드의 선언 필드는 클래스 중괄호 안이라면 어디서든 존재할 수 있다. 하지만 생성자와 메소드 중괄호 내부에서는 선언될 수 없고 그것은 지역 변수라 불린다. 그래서 그와 반대되는 개념인 멤버 변수라고 ..
알고리즘 문제를 풀면서 3중배열을 사용했는데 자동으로 생성되는 변수의 순서가 i j k 순서로 나가는 것을 봤는데 왜 순서가 하필 a b c도 아니고 i j k 일까 라는 고민이 생겼다. 왜 i를 먼저 쓸까? 일단 먼저 순서는 최고의 고급 프로그래밍 언어 중 하나인 Fortran에서 그렇게 사용했다. Fortran은 1950대말에 만들어진 언어로 과학계산용으로 주로 사용됐다. 그러한 만큼 수식을 간단하게 표현 할 수 있고 수치 계산이 빠르다는 특징이 있는 언어이다. 그럼 왜 fortran에서 i를 먼저 썼을까? 960년대에 저는 FORTRAN 2로 프로그래밍했습니다. 구문에는 변수의 유형을 선언하는 방법이 없었기 때문에 i부터 r까지의 문자는 정수용으로 예약되었고 나머지 문자는 부동 소수점 숫자용이었습니..
정규 표현식 문법 예시 1 test.replaceAll("[.]+", "."); 설명 : test변수의 마침표(.)가 연속될 경우 (많을 경우) 마침표(.) 한개로 치환 문자클래스 예시 test.replaceAll("[^a-z0-9_.-]", ""); 설명 : test 변수의 소문자a-z까지, 숫자0~9까지, _.- 를 제외하고 다른 글자를 ""으로 치환한다. 미리 정의된 문자 클래스 출처 : https://page-view.tistory.com/10 출처 : https://gh402.tistory.com/54 정규표현식 사용 예시 문자열에서 숫자를 포함하고 있는지 여부 확인 String number = "Qatar2022"; boolean answer = number.matches("[0-9]+"); ..
클래스 객체를 정의하는 틀 또는 설계도 라는 의미 클래스안에는 여러 객체들이 포함된다. 객체 객체는 필드가 될 수도 있고 생성자가 될 수도, 메소드가 될 수도 있다. 객체란 클래스 안에 포함되어 있는 모든 요소 필드 필드는 객체의 한 부분이고 객체의 한 부분이자 필드는 변수라고 부를 수 있고 클래스안에 선언되어 있으면 멤버 변수, 그보다 더 안으로 메소드 안에 선언되어 있으면 지역 변수이고 멤버 변수는 다시 별도의 저장공간을 가진다면 인스턴스 변수, static이 붙어서 저장공간을 공유한다면 클래스 변수 라고 부른다. 메소드 함수라고도 부르고 방법이라는 의미로 메소드 내에 특정한 행동을 정의하고 메소드를 호출하면 그 행동을 그대로 실행하는 것을 말한다. 메소드는 매개변수를 받을 수 있는데 그 매개변수는 ..
Map이란 Key와 value를 하나의 쌍으로 묶어서 저장하는 컬렉션 클래스이다. key는 중복될 수 없지만 value는 중복이 가능하다. 그러면 기존에 key와 value가 중복된 값을 저장한다면 기존의 데이터는 사라지고 마지막에 저장한 값이 남아 있게 된다. Map은 인터페이스로 여러 클래스를 구현하는데 HashMap, LinkedHashMap, sortedMap,TreeMap등이 있다.
지금까지 웹페이지 구현은 python과 html + css + javascript로만 진행하면서 웹페이지 간의 데이터 이동은 ajax콜만을 사용해 전달했는데 프로젝트 진행간에 정말 많은 문제가 겹쳤겠지만 어쨌든 ajax콜을 사용하지 못하게 됨에 따라 다른 방법을 생각하던 도중 jinja에 대해 알게 되었고 기록하고자 한다. jinja template란? 동적 웹페이지를 구현할 때 ajax콜 방식이 아닌서버에서 바로 웹페이지의 로딩과 변수 값을 html이나 js에 할당하고 싶을때 사용 할 수 있는 python의 템플릿 엔진 중 하나 이다. jinja template 사용법 서버단에서 데이터를 처리해 render_template과 함께 원하는 주소로 랜더링을 해준 뒤 html혹은 js에서 위 사진과 같은 형..
상속에 대한 이해를 했다면 추상클래스를 이해 할 수 있다. 추상클래스란? 구체적이지 않은 클래스를 의미한다. 또한 클래스를 설계도라고 표현한다면 추상클래스는 미완성 설계도 라고 할 수도 있는데 이것은 상속에 대한 이해를 한다면 충분히 이해를 할 수 있다. 추상클래스는 부모 클래스에서 아래와 같은 명령어를 입력해 추상화한다. abstract 나는 상속에 대한 내용을 블로그에서 Car와 Bus의 관계로 개념을 정리했는데 여기서 Car는 추상클래스가 될 수도 있는 것이다. 추상클래스가 왜 상속과 다른 개념인지에 대해 새와 오리로 설명을 해 본다면 새와 오리의 관계를 상속으로 설계했다면.. // Bird.java package DuckTest; public class Bird { public void wing(..
상속이란 기존의 클래스를 다시 사용해서 새로운 클래스를 작성 하는 것이다. 부모가 가진 것을 자식에게 물려주는 것이라고도 하는데 이게 무슨 뜻이냐면 부모 클래스가 가진 메서드를 자식 클래스에서 가져와 쓰는 것이다. 이는 코드를 공통적으로 관리할 수 있고 적은 양의 코드로 작성할 수 있기 때문에 코드의 추가 및 변경 등 유지보수관점에서 굉장히 큰 장점으로 객체지향 프로그래밍의 핵심이라고 볼 수 있다. 상속의 구현 // Car.java package busTest; public class Car { public void run() { System.out.println("달리다."); } } //Bus.java package busTest; public class Bus extends Car { public ..