▸JAVA97 클래스 상속 (extends) 상속을 사용할 때는 접근 제한자(캡슐화)에 대한 부분만 머릿속에서 잘 그리면 사용이 그리 어렵진 않습니다. 기본적으로 Java에서는 다중 상속을 허용하지 않고 있기 때문에 부모 클래스와 자식 클래스의 관계가 명확합니다. 프로그램이 커질 수록 객체 간 상관관계를 구조도로 그려두는 것이 좋겠네요. 일단 클래스 생성 시 필드는 private으로 생성하는 것이 좋습니다. 자식 클래스 또는 다른 클래스에서 데이터에 직접 접근하는 것을 방지하기 위함 입니다. 그리고 해당 데이터에 접근할 수 있는 함수를 추가로 만들어두는데, 값을 가져오는 것을 "getter", 값을 변경하는 것을 "setter"라고 부릅니다. 거의 필수적인 구조라 이클립스에서는 아예 해당 함수를 자동 생성해주는 기능이 있습니다. package st.. ▸JAVA/기본 문법 2019. 12. 10. 생성자와 this [ this ] 클래스의 필드값과 메소드의 변수값이 동일할 때 둘을 구분하기 위한 장치 메소드의 매개변수 (parameter)값이 필드 값을 변경할 때 같은 이름을 사용하기 위해 사용됨 [ 생성자 ] 처음 인스턴스를 생성할 때 인자(argument)를 넣어주면 필드 값으로 입력 됨 입력된 필드 값은 해당 인스턴스 내에서 고정적으로 계속 사용되는 값 Student st = new Student("인자값"); 이유 없이 메소드의 변수와 클래스의 필드 이름이 같은 것은 권장하지 않지만, 일단 아래와 같은 방식으로 사용하는 것도 가능합니다. 많은 경우 this는 생성자를 선언할 때 사용됩니다. 생성자란, 하나의 클래스에서 특정한 값이 고정적으로 계속 사용돼야 하는 값이 있다면 계속 중복 입력해주는 것을 막기 .. ▸JAVA/기본 문법 2019. 12. 10. Static, Final의 의미와 사용법 이전 글에서 다룬 접근 제한자와 Static, Final 개념만 알면 이제 변수와 메소드 생성에 대해서는 걱정할 필요가 없을 것 같습니다. C언어에서는 타입만 지정해주는 것에 반해 Java에서 이렇게 앞에 제한자들이 많은 이유는 역시 객체지향언어에서는 객체들을 서로 이어주는 인터페이스 부분의 기능이 많기 때문 입니다. 아직 클래스와 인스턴스의 개념이 헷갈리시는 분들은 아래 링크 글을 참조하시면 됩니다. 2019/12/09 - [JAVA/기본상식] - 클래스, 인스턴스, 객체의 차이 [ Static ] C언어의 전역변수와 정적(static)변수가 합쳐지고 확장된 개념 C언어의 전역변수 : 해당 파일의 모든 함수에서 공유하는 변수 → Java의 Static : 접근제한자로 접근이 가능한 범위 내의 모든 곳에.. ▸JAVA/기본 문법 2019. 12. 10. 접근 제한자 (Public, Protected, Default, Private) 접근 제한은 성능보다는 "캡슐화"를 구현하는 개념입니다. 자기 자신의 클래스 외 다른 곳에서의 접근 가능 여부를 결정해 줍니다. [ 클래스(Class)의 접근제한자 ] 클래스의 접근제한자는 Public과 Default 2개가 있습니다. Default의 경우는 그냥 앞에 아무것도 안붙이면 Default(기본)로 인식합니다. 패키지가 같다는 의미는 가장 하위, 즉 클래스 파일이 속해 있는 폴더가 같다는 의미입니다. Public은 항상 모든 곳에서 접근이 가능하고 Default는 같은 패키지 안에서만 접근이 가능합니다. Public 클래스의 이름은 클래스 파일 이름과 동일해야 합니다. 즉, 파일 하나 당 Public 클래스 한 개가 되고 나머지는 Default 클래스가 되어 동일 패키지에서만 접근이 가능합.. ▸JAVA/기본 문법 2019. 12. 10. 이클립스 에디터 글자 색 바꾸기 현재 Darkest Dark 테마를 사용중인데 메소드 호출할 때의 글자 색과 변수 글자 색이 같아서 잘 구분이 되지 않습니다. 간단히 변수, 함수 등 모든 부분들에 대한 글자 색상을 마음대로 바꿀 수 있는 방법입니다. 먼저 Windows - Preferences에 들어가서 "color"를 검색합니다. 그리고 검색된 항목 중 "Java - Editor - Syntax Coloring"에 들어갑니다. 오른쪽 "Element" 밑의 "Java"를 열어주시고 원하는 부분의 색을 바꿔주시면 됩니다. 제가 바꾸고 싶은 부분은 "Static method invocations" 항목이네요. 정확히 어떤 항목인지 모르면 이것저것 다 바꿔보면서 테스트 해봐야하는데 원래 색상을 잊을 수도 있으니 바꿀 때 미리 현재 색을.. ▸JAVA/개발 TIP 2019. 12. 10. 기본 클래스 import가 되지 않을 때 입력값을 받기 위한 JOptionPane 클래스를 사용하기 위해 아래와 같은 코드를 짰습니다. package study.input; import javax.swing.JOptionPane; public class InputTest { public static void main(String[] args) { String id = JOptionPane.showInputDialog("입력해주세요"); } } 하지만 아래와 같이 빨간줄이 그이면서 아래와 같은 경고가 뜹니다. 즉, 해당 패키지와 클래스가 없다는 의미인 것 같습니다. 기본이라서 원래 그냥 돼야 하는 걸로 알고 있는데 없다고 하네요. Create class 'JOptionPane' in package 'javax.swing' 검색해봐도 정.. ▸JAVA/개발 TIP 2019. 12. 9. 이클립스 설치 후 JRE버전 경고 문제 해결 방법 ■ 이클립스 : 2019-09 버전 설치 ■ JDK : 13.0.1 버전 설치 정상적으로 작동하는 듯 하였으나, 이클립스에서 계속 아래와 같은 Warning이 뜹니다. Build path specifies execution environment JavaSE-12. There are no JREs installed in the workspace that are strictly compatible with this environment. Study Build path JRE System Library Problem 현재 이클립스 버전에서는 JAVA SE 12의 문법까지를 지원해주고 있는데, JDK버전이 13버전이니 호환성 문제가 일어난다는 뜻입니다. 각 프로그램들의 버전이 의미하는 바는 아래 링크된 글을.. ▸JAVA/개발 TIP 2019. 12. 9. 이클립스 유용한 단축키 실제 사용하고 있는 단축키만 넣고 있습니다. 사용해보면서 계속 추가해 나가 보겠습니다. [ Ctrl + Shift ] ■ 단축키 표시 : Ctrl + Shift + L ■ 자동 정렬 : Ctrl + Shift + F ■ 자동 import : Ctrl + Shift + O ■ 대문자 변환 : Ctrl + Shift + X ■ 소문자 변환 : Ctrl + Shift + Y ■ 범위 주석 : Ctrl + Shift + / ■ 범위 주석 해제 : Ctrl + Shift + \ ■ 디버깅 브레이크 포인트 지정 : Ctrl + Shift + B [ Alt + Shift ] ■ 상수 → 변수로 한번에 변경 : alt + Shift + L (Extract Local Varialbe) ■ 블럭잡은 구문을 메소.. ▸JAVA/개발 TIP 2019. 12. 9. 이클립스 테마 변경 (다크 테마) 비쥬얼 스튜디오의 기본 다크 테마를 쓰다가 새로 이클립스를 보니 눈이 너무 아파서 그것부터 해결해야겠습니다. 비주얼 스튜디오는 기본 테마도 좋은데.. 이클립스 기본 다크 테마는 제 기준에서는 매우 색감이 구립니다. 그래서 다른 테마를 받기로 했습니다. ■ "Help - Eclipse Marketplace" 에 들어감 ■ "darkest dark" 검색 후 "Install" 클릭 ■ 뭔지는 모르겠지만 다 체크하고 "Confirm >" 클릭 ■ 공짜라고 하니까 약관동의 나오면 동의해주고 재시작 ■ 첫 시작 때 "Next" 한번 눌러주고 중간의 "Darkest Dark Theme" 선택 후 다시 "Next" 클릭 ■ 다른 테마 다 눌러봤지만 이게 젤 나음 (선택하는 즉시 확인 가능.. ▸JAVA/개발 TIP 2019. 12. 9. 이클립스(Eclipse) 설치 [ 이클립스란? ] 코딩이 문서작성이라면 이클립스는 워드 또는 한컴이라고 할 수 있음 메모장으로 작성 가능하지만 쉽게 작성하기 힘드니 보다 강력한 작성 툴의 도움을 받음 비주얼 스튜디오와 같은 역할이며, 다만 JAVA의 경우 JDK를 먼저 설치해야 함 꼭 이클립스여야 할 필요는 없지만 가장 많이 사용하는 개발툴 중 하나가 이클립스 남들이 많이 쓰는걸 써야 정보도 얻기 편하고 배우기가 편함 ■ 아래 사이트에서 다운로드 버튼 클릭 (최신버전 나오면 바껴있음) https://www.eclipse.org/downloads/ ■ 다운로드 클릭해서 파일 받음 ■ japan으로 돼있어서 찝찝하다면 "Select Another Mirror" 선택해서 Korea로 받음 ■ 설치파일 실행 ■ 처음 뜨는 화면에서.. ▸JAVA/개발 TIP 2019. 12. 9. JAVA JDK 설치 및 환경변수 설정 [ JDK 설치 ] ※ 추가 수정 사항 아직 이클립스(2019-09기준)에서 JavsSE-13 (JDK 13) 버전을 지원해주지 않는 것 같습니다. 호환성 에러가 계속 뜨네요. 아래 링크 글을 참조해서 그 이하 버전 설치를 권장합니다. 2019/12/09 - [· JAVA/- 개발 TIP] - 이클립스 설치 후 JRE버전 경고 문제 해결 방법 ■ 아래 오라클 공식 사이트에 들어가 원하는 버전의 JDK 다운로드를 클릭함 https://www.oracle.com/technetwork/java/javase/downloads/index.html ■ 오른쪽 DOWNLOAD 버튼 누르면 세부 환경에 맞게 다운로드 가능 ■ 윈도우 탐색기 - 내컴퓨터(내PC) 우클릭 - 속성에서 비트 수 확인 (64비트 또는 .. ▸JAVA/개발 TIP 2019. 12. 9. JAVA SE/JDK/JRE/JDK 및 IDE 차이점 [ Java JDK 란? ] Java로 된 언어를 컴파일하고 개발할 수 있도록 해주는 개발 환경의 세트를 의미함 Java Development Kit의 약자, 개발자를 위한 JAVA라고 할 수 있음 개발자만을 위한 컴파일러, 디버깅툴 등을 제공 개발자 및 사용자를 위한 JAVA인 JRE(+JVM)을 포함한 종합 툴 JAVA SE : C언어의 표준인 C9, C11처럼, JAVA의 표준 문법을 의미 (JAVA SE 11, 12 등) JAVA EE : JAVA SE에 엔터프라이즈용 여러 기능(라이브러리 등)을 포함한 확장 버전 JRE : Java Runtime Environment (JAVA 버전에 따른 기본 라이브러리 포함) JVM : Java Virtual Machine (자바 코드를 해석해서 프로그램을 .. ▸JAVA/개발 TIP 2019. 12. 9. Java의 메모리 구조_메소드의 매개변수 [3/3] 이전 글에서 8가지 원시타입의 변수를 제외한 모든 변수는 참조 변수라고 했습니다. 이 구조를 이해하면 메소드 사용 시 실수를 피할 수 있습니다. C언어를 해보신 분들은 C언어의 함수와 포인터와 동일한 원리라고 이해하시면 됩니다. 아래 코드를 보시고 결과를 한 번 예측해보세요. package study.first; /* Public class */ public class Main { public static void main(String[] args) { String arr = "Hello"; print(arr); System.out.println(arr); } static void print(String text) { text += " world"; } } 정답은 "Hello"만 출력됩니다. C언어의 포.. ▸JAVA/기본 상식 2019. 12. 9. Java의 메모리 구조_자바가 상대적으로 느린 이유[2/3] C언어에 비해 Java가 느린 이유는 크게 2가지를 들 수 있을 것 같습니다. 첫 번째는 객체지향언어라는 특성 때문이고, 두 번째는 JVM이라는 가상 머신을 사용하기 때문입니다. 둘 다 개발자의 편의성을 위해 성능을 희생하고 있는데, 사실 하드웨어도 빨라지고 Java 자체의 소프트웨어도 워낙 발달해서 초기에 이슈가 됐던 성능 이슈가 잠잠해졌습니다. 하지만 여전히 하드웨어 스펙을 짱짱하게 넣지 못하는 소규모 장비 등에서는 C언어를 주로 사용한다고 합니다. [ 객체지향언어의 특성으로 인한 느림 ] Java에서는 클래스 단위로 모든 코드를 작성합니다. C언어와 같이 함수 단위가 아닙니다. 따라서 다른 클래스에 있는 일부 메소드나 정보를 사용하기 위해서는 전체 클래스를 인스턴스로 만들어 메모리에 저장해야 합니다.. ▸JAVA/기본 상식 2019. 12. 9. Java의 메모리 구조_기본 구조[1/3] 개발자 입장에서 프로그램이 어떻게 돌아가는지와 효율적인 메모리 관리를 어떻게 해야하는지에 대해 큰 줄기만 정리해보겠습니다. 가장 기본 언어이자 기본 구조인 C언어의 메모리 구조와 비교하면서 보시면 이해가 더 잘될 것 같습니다. 혹시 C언어의 메모리 구조 또는 스택/힙 메모리에 대해 잘 모르시는 분은 아래 두 개 글을 참고하시면 됩니다. 2019/12/05 - [C언어/기본상식] - C언어의 메모리_기본 구조 [1/2] 2019/12/05 - [C언어/기본상식] - C언어의 메모리_스택 메모리 [2/2] 먼저 소스코드를 작성하고 컴파일하면 JDK에 들어 있는 컴파일러가 바이트 코드로 번역해서 .class 파일을 만들어 줍니다. 바이트 코드는 기계가 못 읽고 Java만 알 수 있는 중간 언어입니다. 그리.. ▸JAVA/기본 상식 2019. 12. 9. 이전 1 ··· 3 4 5 6 7 다음 💲 추천 글 반응형