목록JAVA (54)
고래씌
1. 상속1) 상속을 쓰는 이유?☞ 매 클래스마다 중복된 코드들을 일일이 기술해두게 되면 수정, 추가, 삭제시 매번 일일이 찾아가서 수정을 해야하는 번거로움이 생긴다. ex) 필드명 수정, 새로운 필드가 추가시 ☞ 상속이라는 개념을 적용시켜서 매 클래스마다 "중복된" 필드, 메소드들을 단 한번 또 하나의 클래스에 정의해둔뒤, 해당 클래스를 상속받아서 부모클래스의 필드와 메소드를 가져다 쓰는 방식으로 코드의 중복을 피해야한다. super(); => 자기보다 상위의 존재를 말함. 즉, 부모클래스의 생성자 호출을 의미! => 부모클래스의 주소값을 보관하고 있음. => super.으로 부모에 접근이 가능 ☞ super(brand, pCode, pName, price) 로 작성하여도 되고, super.setBrr..
1. 객체 배열 => 객체 배열을 생성할 때 Heap 메모리 안에 무조건 들어간다! Alt + Shift + s 단축키 => Generate Getters and Setters package com.kh.chap01_oneVsMany.mdoel.vo; public class Book { private String title; private String author; private int price; private String publisher; public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getAuthor() { return author; } ..
1. 메소드 오버로딩 - 하나의 클래스 내에 "같은"이름의 메소드명을 정의할 수 있는 방법 - 매개변수의 자료형의 개수, 순서가 다르게 작성하면 된다 - 단, 매개변수명이나 접근제한자 반환형은 오버로딩과 연관 X => 매개변수의 이름과 반환형, 접근제한자가 다르다고 오버로딩이 적용되지 않는 것을 확인 2. 클래스 실습문제 package com.kh.practice.snack.model.vo; public class Snack { private String kind; // 종류 private String name; // 이름 private String flavor; // 맛 private int numOf; // 개수 private int price; // 가격 public Snack() { } publi..
1. 메소드[표현법] 접근제한자 [예약어] 반환할 값의 자료형 메소드명 ([매개변수]) { 수행할코드 return 반환할 값; (반환형이 void일 경우 생략 가능) } => 한번 정의하면 내가 원하는 만큼 호출해서 재사용할 수 있다.package com.kh.chap06_method.controller; public class MethodTest1 { // 1. 매개변수가 없고 반환값도 없는 메소드 public void method1() { System.out.println("매개변수와 반환값이 둘다 없는 메소드입니다."); //return; // JVM이 자동으로 생성해줌 } // 2. 매개변수가 없고, 반환값은 있는 메소드 public int method2() { System.out.println(..
1. 생성자1) 생성자부 생성자 [표현법] 접근제한자 클래스명([매개변수]) { => ※ 매개변수 생략가능 해당 생성자를 통해서 객체 생성시 실행하고자 하는 코드; } 2) 생성자를 작성하는 목적 ▶ 객체를 생성하기 위해 ▶ 객체생성뿐 아니라 매개변수로 전달된 값을 통해 필드에 초기화시킬 목적 => setter 메소드가 없더라도 생성자로만 객체를 초기화 할 수 있다! 3) 생성자 작성시 주의사항 ▶ 생성자명은 반드시 클래스 명과 동일해야함(대/소문자 구분) ▶ 반환형이 존재하지 않는다.(반환형 존재시 메소드로 해석) ▶ 여러개의 생성자를 만들수 있지만, 매개변수가 중복되어서는 안된다.(오버로딩) ▶ ★매개변수 생성자를 명시적으로 만들게 되면, 기본생성자를 JVM이 자동으로 만들어주지 않는다. 지금까지 우..
+ : public - : private # : protected ~ : default(package) - 클래스 실습 예제 package com.kh.example.practice1.model.vo; public class Member { // 필드부 private String memberId; private String memberPwd; private String memberName; private int age; private char gender; private String phone; private String email; // 생성자부 // + Member() public Member () { } // 메소드부 public void changeName(String name) { memberN..
보호되어 있는 글입니다.
1. 자바에서의 객체: 클래스에 정의된 내용대로 new 연산자를 통해 메모리 영역에 생성된 것 1) 객체 지향 언어 : "객체"를 "지향"하는 언어로 객체중심으로 돌아가는 언어2) 객체란? : 사전적 의미로는 현실세계에 독립적으로 존재하는 모든 것3) 객체지향 프로그래밍: 현실세계의 객체간의 상호작용을 프로그래밍을 통해 가상세계로 구현하는 과정4) 구현하고자 하는 프로그램상의 필요한 객체를 만들기 위해서는 클래스라는 틀을 먼저 만들어야함.=> 클래스란? 각 객체들의 속성(구성요소)들을 담아낼 수 있는 그릇과도 같은 존재 => 추상화와 캡슐화 과정을 거쳐 클래스를 만들 수 있음 2. 추상화5) 추상화 과정추상화 : 불필요한 공통점을 제거하는 과정 ① 내가 구현하고자 하는 프로그램에서 필요한 객체들을 생각해..
1. 2차원 배열 1) 2차원 배열 구조 // 이차원 배열 선언과 동시에 할당 int[][] arr = new int[3][5]; System.out.println(arr); // arr 주소값 출력. [[I@16진수주소값 System.out.println(arr[0]); // [I@16진수주소값 arr.length ▶ 열의 길이 출력하고자 할 때 => arr[0 or 1 or~].length package com.kh.array; public class C_DimensionalArray { public void method1() { // 일차원 배열 int[] arr1; int arr2[]; // 이차원 배열 선언 int [][] arr3; int arr4 [][]; int[]arr5[]; // 이차원..