Web develop/JAVA 24

[JAVA] 자바 클래스 객체생성법

: 멤버(field,method)들에 대한 메모리 할당 동적메모리 할당 사용안하는 객체에 대해서 가비지컬렉터가 자동 소멸 관리 키워드 : new 사용법 : 참조변수를 통해 사용 A a = new A(); a.hello(); 정적메모리 할당 자주 사용되는 필드,메소드에 대해 정의 객체들간의 통신에 사용 (공유 데이터를 표현) 키워드 : static 사용법: 클래스명으로 참조 클래스명.필드명 클래스명.메소드명(); //클래스변수,클래스메소드 //static변수, static메소드 class B{ public static int su=100; public static void goodBye(){} } 클래스 객체 비교 클래스참조변수1 == 클래스참조변수2 //메모리 주소 비교!! A a1 = new A(); ..

Web develop/JAVA 2019.04.24

[JAVA] 추상클래스(abstract class)

자식 class를 제어할 목적으로 사용 자식클래스의 특징을 모아놓은 클래스 구현(정의)된 메소드와 선언된 메소드로 구성 스스로 객체생성 불가→ 후손 class 객체생성해서 사용 class 기본클래스 { //정의(구현)된 메소드 void hello(){ } } class 추상클래스 { //선언된 메소드 void hello(); //정의메소드 void goodBye(){ } } interface 인터페이스 { //선언된 메소드만 void hello(); } 추상클래스 형식 abstract class 클래스명{ //필드선언 public void hello(){}; //구현된(정의된) 메소드 abstract void print(); //선언된 메소드 ※주의: 선언된 메소드를 사용하는 경우 반드시 abstract..

Web develop/JAVA 2019.04.24

[JAVA] 자바 배열(Array)

: 데이터형이 동일한 자료에 같은(하나의) 변수명을 정의한 자료들의 집합 데이터형이 동일한 자료 같은(하나의) 변수명을 정의 su[0] , su[1] , ... -> 번지(인덱스). 데이터를 구분하기 위해서 사용함 ==> su라는 배열변수에 복수 데이터를 대입 시작번지는 0번지 첫번째 데이터부터 인덱스(자동번호) 배열의 크기가 정해지면 인덱스를 벗어나는 참조를 하면 안됨 배열 => 객체취급 자료형 앞에 대괄호가 들어가는 순간 참조변수가 된다. int su; //한개의 데이터 입력 int[] su; //여러개의 데이터 입력(배열) int[] su3 = {10,11,12}; System.out.println(su3[1]); //데이터 사용 System.out.println(su3[5]); //에러발생. 범위..

Web develop/JAVA 2019.04.24

[JAVA] 자바빈즈(JavaBeans)

: 서로 관련성 있는 속성을 묶어주는 클래스(객체) 사용하는 곳에 따라 VO 또는 DTO 라는 이름을 사용하기도 함 VO : Value Object(데이터들을 묶어주는 객체) DTO : Data Transfer Object (데이터를 전송해주는 객체) 자바빈즈 규칙 속성데이터를 private하게 선언 public 선언된 주고받는 메소드를 정의 public한 기본생성자, 오버로딩 생성자를 정의할 수 있다 반드시 속성의 수와 일치하는 get, set이 정의되지 않아도 된다. public class Person{ private String name; private int age; private String job; public void setName(String name) { this.name = name; ..

Web develop/JAVA 2019.04.24

[JAVA] 자바 인터페이스 형식, 사용 예시

연결자를 뜻함. 인터페이스에 선언한 클래스는 반드시 정의되어 있어야 한다. 메뉴판 -> 인터페이스 형식) interface 인터페이스명 { //필드 public static final int su = 0; //static -> 정적 메모리할당, new -> 동적 메모리할당 //선언된 메소드 public abstract void print(); } interface의 구성멤버는 필드, 선언된 메소드로만 구성된다. void print() { } →정의된 메소드, 구현된 메소드 void print(); →선언된 메소드(바디없는, 영역괄호 없는 메소드) 선언된 메소드의 접근제한자 명시는 public만 할 수 있다. 다른 접근제한자는 불가능 public과 abstract는 생략가능하다 생성한 인터페이스는 클래스에..

Web develop/JAVA 2019.04.23

[JAVA] 자바 this 레퍼런스 변수 형식, 사용법

자기자신의 속성을 가리키는 또다른 이름 메소드 내에서 사용 객체 생성자내에서 다른 생성자를 호출시 사용 매개변수(지역변수)와 멤버변수(필드)를 구분하기 위해 멤버변수 앞에 this.를 붙여 사용 형식) this.필드명; this.메소드명(); this(); //생성자 호출 참고) super.필드명 super.메소드명(); super(); //부모클래스 생성자 호출 this 예제 public class Abc { int su; public Abc() { this(100); } public Abc(int su){ this.su = su; } } Abc a = new Abc(); System.out.println(a.su); //100 //this(100); 표기안할시 0 Abc a = new Abc(500)..

Web develop/JAVA 2019.04.22

[JAVA] 자바 접근제한자(AccessControl)

public : 서로 다른 패키지에서도 접근 가능 protected : 서로 같은 패키지에서 접근 가능, 만약 상속관계를 갖는다면 다른 패키지라도 자식이 부모를 참조. default (생략): 서로 같은 패키지에서 접근 가능 private : 같은 클래스 내에서만(멤버끼리만) 접근가능 => not visible. 볼수없음으로 에러뜸 접근지정자 위치 필드[접근지정자 4개] 자료형 변수명; 메소드[접근지정자 4개] 리턴자료형 메소드명( ){} 클래스[접근지정자 2개(public, default)] class 클래스명{} 한 개의 파일에 두개 이상의 클래스를 정의하는 경우, 저장 파일명 클래스에만 public과 같은 접근제한자를 명시할 수 있음

Web develop/JAVA 2019.04.21

[JAVA] 자바클래스 생성자(Constructor)

생성자 (Constructor) : 새로운 객체를 생성하기 위해서 초기화해주는 메소드 생성자의 이름은 반드시 클래스명과 일치해야한다.(대소문자 일치) void를 포함한 리턴자료형을 명시하지 않는다. 객체 생성시 자동으로 호출된다. 클래스 내에 생성자가 하나도 없다면 자바 컴파일러가 컴파일시 자동으로 기본생성자를 추가 주의) 만약 클래스 내에 한 개 이상의 생성자가 정의 되어 있다면 컴파일러는 생성자를 자동추가하지 않는다. class Abc { int su; My my; Abc(){ //기본생성자(매개변수 비어있는 생성자), 초기화(값 할당) 메소드 // 멤버필드에 대한 초기화 작업 su = 10; my = new My(); }//생성자 Abc(String name){ //오버로딩 생성자 } ABc(int..

Web develop/JAVA 2019.04.21

[JAVA] 객체지향의 특징 (상속, 캡슐화, 다형성)

상속 부모가 갖는 자원(필드,메소드)을 물려주는 것 관련키워드 extends =⇒ is a 관계 class My extends 부모클래스명{ } class Parent extends Object{ //Object: 최상위클래스, 기본값. } class Child extends Parent{ } Object 클래스 : 최상위클래스. 자바의 모든 클래스의 부모클래스 java.lang.Object 부모클래스, 상위클래스, super | java.lang.String 자식클래스, 하위클래스, sub 캡슐화 필드와 메소드를 묶어주는 것 정보 은닉 모듈성 다형성 메소드 오버라이딩(MethodOverriding) 부모가 갖는 메소드를 자식클래스에서 재정의 상속에서 나온 개념 class Parent { int x = ..

Web develop/JAVA 2019.04.21

[자바] 주민번호 입력하여 나이구하기

public class JuminBunhoTest { public static void main(String[] args) throws Exception{ Calendar cal =Calendar.getInstance(); int year = cal.get(Calendar.YEAR); System.out.print("주민번호를 입력하세요('-' 포함):"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String id = br.readLine(); String birthYear = id.substring(0,2); char ch = id.charAt(7); int age; if(ch < '3') { // '3'은 문..

Web develop/JAVA 2019.04.21