국비과정/JAVA (34) 썸네일형 리스트형 20230619 _[12일차]_01. ArrayList [ ArrayList ] package collection; import java.util.ArrayList;// import* // 자료구조 // 컬랙션 하위 arrayList타입 // 이름도 배열이 들어갑니다. 배열과 흡사합니다. (배열과 다르게 정해진 길이가 없음) // 배열보다 쉽습니다. public class ArrayList01 { public static void main(String[] args) { // 배열 선언 int[] arr = new int[10]; // List -> ArrayList ArrayList arr01 = new ArrayList();// 생성할때 타입결정하는데 일단은 int타입으로! // 값대입 = add() arr01.add(10);// 배열처럼 생각한다면 값 1.. 20230616 _[11일차]_03. 여러생성자 만들기 연습 & static 변수 [ 여러개의 생성자 만들기 ] package Car; // Car 클래스 안에 여러 생성자 Car 만들기연습 public class Car { // 필드 = 인스턴스 변수, 클래스 변수 static String company = "현대자동차";// 클래스 변수 = 클래스명.변수명 String model;// 인스턴스 변수 = 인스턴스변수명.변수명 String color; int maxSpeed; Car(){ System.out.println("자동차를 만듭니다."); } Car(String model) { this(); this.model = model; } Car(String model, String color){ //this.model = model; this(model); this.color = c.. 20230616 _[11일차]_02. 기본생성자 & 명시된생성자 & this [ 생성자 ] 생성자란 클래스가 객체화 되어질 때 실제 객체를 생성해주는 코드입니다. 생성자는 그 외에도 아래와 같은 일을 합니다. 1. 클래스의 객체 생성 2. 멤버필드 초기화 3. 필요에 따라서 초기화 메소드 실행 위 내용을 다시 정의하면 생성자가 없다면 인스턴스를 발생시킬 수 없습니다. 생성자의 형식 생성자는 메소드와 유사한 형식을 가지고 있습니다. 하지만 메소드와 기능적인 부분에서 차이가 있습니다. 1. 생성자의 이름은 반드시 클래스명과 같아야 합니다. 만약 다르다면 메소드로 인식합니다. __ 소문자로 시작하면 메소드로 인식 2. 메소드가 아니기 때문에 리턴타입이 없습니다. 기본 생성자 (Default Constructor) 자바에서는 모든 클래스마다 컴파일 할 때 기본 생성자를 넣어줍니다. 단,.. 20230616 _[11일차]_01. 메소드 오버로딩 & 생성자 이름이 같아도 파라미터의 수, 순서, 타입이 다르면 다른 메소드로 인지 다른 메소드로 인지 = 메소드 오버로딩 [ 메소드 오버로딩(overloading) ] 같은 이름의 메소드를 중복하여 정의하는 것을 의미합니다. 자바에서는 원래 한 클래스 내에 같은 이름의 메소드를 둘 이상 가질 수 없습니다. 하지만 매개변수의 개수나 타입을 다르게 하면, 하나의 이름으로 메소드를 작성할 수 있습니다. 면접에서 많이 물어봄!! 1. 오버로드 / 오버로딩 = 같은 이름의 메소드, 메소드 시그니쳐 = 한 클래스 내에서는 같은 이름의 메소드가 있으면 안됨. = 파라미터가 다르면 같은 이름으로 메소드명을 만들 수 있음 = 파라미터의 갯수, 순서, 타입이 다르면 다른 메소드 = 메소드 호출할 때 파라미터로 구분해서 호출합니다. .. 20230615 _[10일차]_04. Arguments & 메소드 특징 & 활용 [ 자바의 메소드 ] = function 자바는 클래스를 정의하고 정의된 클래스의 인스턴스를 만들어서 여러가지 기능적인 일을 처리하도록 만들어진 객체지향언어입니다. 위에서 기능적인 일을 담당하는 것이 메소드입니다. 메소드는 우리가 산수시간에 배웠던 함수와 같은 개념입니다. 즉 특정 기능(일)을 수행하도록 메소드에서 미리 정의하고 그 일이 필요할 때마다 해당 메소드를 호출해서 사용합니다. 이렇게 하는 주 이유는 같은 일을 수행하는 것을 반복적으로 코딩하지 않아도 되는 큰 이점이 있기 때문입니다. 메소드의 기본 형식 [접근제어자] 리턴타입 메소드명([파라미터,...]) { 명령문; (구현부 : 메소드가 하는 일 = 명령어의 집합) } []는 없어도 되는 부분입니다. 나머지는 필수입니다. [ Arguments.. 20230615 _[10일차]_03. 객체 지향 특징 & 활용 [ 객체지향 특징 ] 캡슐화 = 보호 = 보안 = 콘텍600 관련된 데이터(필드)와 기능(메소드)를 하나의 묶음으로 처리 상속 = 코드 재활용 = 이미 작성된 클래스(부모)를 이어받아서 새롭게 만드는(자식) 것 자식 클래스는 부모 클래스의 모든 속성(필드)과 동작(메소드)를 사용할 수 있습니다. 필요한 기능은 자식 클래스에서 추가해 사용합니다. 추상화 = 불필요한 것을 제외하고 필요한 것을 유지 실제로 객체를 인스턴스화 할때 필요한 내용을 남기고 나머지는 제외하는 것 다형성 = 객체의 동작이 변경되는 것 파라미터나 상황에 따라 동작이 변경됩니다. =========================================================================================.. 20230615 _[10일차]_02. 객체 생성 연습 (인스턴스) [ 인스턴스화 ] package zoo; // 각각 동물들에 대한 클래스 생성, 내부에 sleep() 메소드, 내부에 출력명령어. class Cat { void sleep() { System.out.println("Zzzz"); } } class Dog { void sleep() { System.out.println("Zzzz"); } } class Mouse { void sleep() { System.out.println("Zzzz"); } } class Horse { void sleep() { System.out.println("Zzzz"); } } public class Animal { public static void main(String[] args) { // 동물들을 인스턴스화 해보기 Cat .. 20230615 _[10일차]_01. 객체타입 및 참조 [ 새로운 패키지 생성 ] > class생성시 패키지 확인필요** * abstract 추상화 (객체생성 목적이 아닌 대략적으로 만들때) [ 객체생성 + 참조타입 ] 필요한 정보와 필요없는 정보 구분 --> 필요한 정보만 넣고 만들자 (간략화** diet) 필요한 필드, 메소드 생각하고 (설계먼저) 만들기 package jun15; //프로그램 로직에 필요한 것과 필요없는 것 생각하기** public class Human { // 필드 // 사람에게 필요한 정보 -> 필요한 정보만 남기고 필요없는거 빼버림 String name; int age; // 생성자 // 메소드 void myInfo() { name = "Haehyun_Pyo"; age = 29; age--; System.out.println("내 .. 이전 1 2 3 4 5 다음