API란, Application Programming Interface를 의미한다. String & StringBuilder String : 불변성. immutable 한 특성. -,+ 연산시 해당 리터럴을 변경하는 것이 아닌 새로운 리터럴 생성 StringBuilder : mutable 한 특성. 멀티쓰레드 동기화 미지원. 속도 빠름 StringBuffer : mutable 한 특성. 멀티쓰레드 동기화 지원. 속도 느림 이 개념은 실제로 저번 테스트에서 나왔었다. String s1="java"; String s2="java"; String s3=new String("java"); String s4=new String("java"); System.out.println(s1==s2);//true Syste..
Ctrl + F11 컴파일 + 디버그. 코드가 제대로 돌아가는지 확인 Ctrl+W / Ctrl+Shift+W 창닫기 / 열린 창 전부 닫기 Ctrl + / 그 줄 주석처리 Ctrl + 메소드 클릭 메소드 코드로 이동 Ctrl + Shift + O 자동 import Ctrl + Alt + ↑↓ 선택한 줄을 화살표 방향으로 복사 Alt + ↑↓ 해당 줄을 그대로 옮김 Ctrl + D 해당 줄 삭제 home / end 블럭단위의 처음 / 끝 으로 이동 Shift + home / end 그 줄 처음부터 커서까지 / 커서부터 그 줄 끝까지 Ctrl + Space 자동완성 Alt+ Shift + Y 페이지 자동 줄맞춤 형식으로 변환 / 아닌것으로 변환 Alt + Shift + R 클래스나 메소드 이름 바꿀때 사용 ..
추상클래스 메소드 오버라이드 강제화 public void test6() { Animal[] animals = new Animal[5]; for(int i=0;i 자식클래스를 객체화해서 사용 차이점 추상클래스는 일반클래스 성격을 가지고 있다. field와 method를 가지고, 자식클래스에 물려줄 수 있다. 인터페이스는 일반 field와 method를 가질 수 없다. Java 1.8부터 default/static 메소드를 사용할 수는 있다. 특징 [추상클래스] - 0개이상의 추상메소드를 가질 수 있다. (추상메소드가 0개인 경우 객체화를 막기위한 목적이라고 보면 됨) - 자식클래스는 반드시 부모의 추상메소드를 구현해야 한다. [추상메소드] - abstract 키워드 - 몸통부가 없음. 몸통부는 자식클래스에..
==와 equals 의 차이 == ) 동일성 비교 (identity) : 같은 주소값을 가진 객체인가 비교. (주소값 비교) equals ) 동등성 비교(equality) : 같은 내용을 가진 객체인가. (내용 비교) equals & hashCode 현재객체.equals(다른객체) - 현재객체.필드명 이 다른객체.필드명 과 같은지 (다르면 return false) equals를 제대로 사용하기 위해서는 Override가 필요하고, Override를 안했을 경우 obj의 equals를 쓰기 때문에 false가 나온다. equals의 비교결과가 true라면, hashCode 값도 같아야 한다. 이 역시 오버라이딩이 필요하다. 특정 필드값(동등성 비교에 사용)기준으로 hashCode를 재생성한다. 보통 equ..
금요일엔 정말 중요한걸 배웠다. 바로 상속. Inheritance. 상속에 대해서 알아보자. 상속 (Inheritance) class 자식클래스이름 extends 부모클래스이름 { // 내용 } 위와 같이 사용한다. @Override 어노테이션 - 오버라이딩 유효성 확인 extends 가 뒤에 없을 경우 - extends Object 생략된 것. extends 뒤에는 딱 한개의 클래스만 올 수 있음. 다음과 같이 상속을 extend로 선언하여 사용하면, 부모클래스에 선언된 필드/메소드를 선언없이 사용할 수 있다. @Override 어노테이션은 오버라이드가 됐는지 확인할 수 있는 코드로, 상속받은 메소드를 오버라이드했을 경우 오류가 발생하지 않고, 오버라이드 메소드가 아닐 경우 오류가 발생한다. @..
지난 수업에서 VO class 를 배웠다. 오늘은 이를 응용하고 더 확장해보는 수업이었다. VO class - 다른말로는 DTO (Data Transfer Object) , DO(Domain Object), Entity, bean 이라고도 한다. vo class 작성방법 1. private field 2. public getter/setter (위치 생성자 아래도 가능) 3. 기본 / 모든 파라미터 생성자 4. 필드정보 확인용 메소드 보통 getter/setter를 제외하고는 순서도 이 순서대로 쓴다. 다음과 같은 구조에서, 먼저 Person.java 클래스를 작성해본다. public class Person { //field private String name; private int age; ..
Static / non-static 메소드 1. nonstatic 메소드 (멤버 / 인스턴스 메소드) - 객체를 생성 후 호출해야 한다. - 멤버변수 , 클래스변수 모두 접근할 수 있다. 2. static 메소드 (클래스 메소드 ) - 객체 생성 없이, 클래스명으로 직접 호출하는 메소드 - 클래스 변수에만 접근할 수 있다. int a=100; static int s=99; public static void main(String[] args) { MethodStudy study = new MethodStudy(); study.test1(); MethodStudy.test2(); } /** * 멤버메소드 */ public void test1() { System.out.println(a); System..
13일차 수업에 이어서 UML 다이어그램을 진행한다. 이를 보고 클래스 작성하기를 과제로 주셨다. Member class package net.kh.member.model; public class Member { private String memberId; private String memberPwd; private String memberName; private int age; private char gender; private String phone; private String email; public Member() { } //getter + setter public String getMemberId() { return memberId; } public void setMemberId(String..
드디어 객체 에 들어왔다. 객체와 관련된 수업은 굉장히 중요하나, 사실 14일에 열심히 듣지 않은 관계로 지금 이렇게 쓰고 있다 객체지향 객체지향 프로그래밍이란, 현실세계의 객체(사물, 개념)을 클래스(class)와 객체(object)의 개념으로 컴퓨터에서 구현하는 것을 의미한다. 객체간의 상호작용을 프로그래밍으로 만든 것이 객체지향 언어라고 보면 된다. 객체지향의 3대 원칙 캡슐화 상속 다형성 객체 클래스대로 new 연산자를 호출해서 메모리 heap에 적재된 결과물(instance)을 객체라고 한다. 클래스 객체를 정의한 것. 객체의 설계도와 틀. 사물이나 개념의 공통요소를 용도의 맞게 추상화(abstraction)한 것. 코딩에서 추상화는 클래스를 작성하는 것이라고 볼 수 있다...
10,11일에는 배운것도 있지만 주로 시험이 주가 되었다. 그래서 기본 개념중 시험을 통해 알게 된 몰랐던 개념을 정리하려고 한다. java.lang.* ; java.lang 패키지 자바 프로그램의 기본적인 클래스를 담고 있는 패키지로 import 구문 없이 사용할 수 있는 것이 특징. 포함 선언을 하지 않아도 자바 가상머신에 의해 자동 포함처리된다. ex) Number/Character/Boolean/String ..... 등의 Objects 패키지명과 클래스명 패키지는 클래스의 묶음을 의미하고, 서로 관련있는 클래스들끼리 그룹으로 묶어서 효율적으로 관리. 클래스의 실제 이름은 패키지명을 포함한 것이다. 같은 이름의 클래스라도 다른 패키지에 각각 존재할 수 있다. Static me..