728x90
Array와 list , ArrayList 차이
Array : 데이터 조회 : 빠름
삽입,삭제 : 느림
인덱스가 존재, 정해진 공간에 할당
List : 데이터 조회 : 느림
삽입, 삭제 : 빠름
인덱스가없음, 요소가 추가 될때 마다 공간 할당
ArrayList는 Array와 List장점을 합친것이다.
index가 있지만, 크기를 동적으로 할당 가능
ArrayList를 좀더 범용적으로 할당 방법
List list = new ArrayList();
-> 도형 list = new 정사각형();
ArrayList list = new ArrayList();
-> 정사각형 list = new 정사각형();
클래스는 하나당 원래는 파일하나를 생성하는것이 원칙이다.
클래스 상속
class Animal {
String name;
public void cry() {
System.out.println(name + " is crying.");
}
}
class Dog extends Animal {
Dog(String name) {
this.name = name;
}
public void swim() {
System.out.println(name + " is swimming!");
}
}
public class main {
public static void main(String[] args) {
Dog dog = new Dog("코코");
dog.cry();
dog.swim();
Animal dog2 = dog;
dog2.cry();
// dog2.swim(); // compile error
}
}
클래스 오버로딩 과 오버라이딩
오버로딩 : 같은 메소드의 매개변수 및 자료형을 재정의 하는것.
오버라이딩 : 부모클래스에 있는 매소드를 자식클래스에 있는 매소드로 대체해서 재정의 하는것.
오버로딩
오버로딩이 아닌경우
반환타입이 다르지만 매개변수의 자료형과 갯수가 같음
int add(int x, int y, int z) {
int result = x + y + z;
return result;
}
long add(int a, int b, int c) {
long result = a + b + c;
return result;
}
// 반환타입은 다르지만 매개변수의 자료형과 개수는 같기에 오버로딩이 아닙니다.
오버로딩
public class main {
public static void main(String[] args) {
}
int add(int x, int y, int z) {
int result = x + y + z;
return result;
}
long add(int a, int b, long c) {
long result = a + b + c;
return result;
}
}
오버라이딩
class Animal {
String name;
String color;
public void cry() {
System.out.println(name + " is crying.");
}
}
class Dog extends Animal {
Dog(String name) {
this.name = name;
}
public void cry() {
System.out.println(name + " is barking!");
}
}
public class main {
public static void main(String[] args) {
Animal dog = new Dog("코코");
dog.cry();
}
}
- 접근 제어자 (access modifier)
- 접근 제어자는 멤버 변수/함수 혹은 클래스에 사용되며 외부에서의 접근을 제한하는 역할을 합니다.
private → default → protected → public
- private : 같은 클래스 내에서만 접근이 가능합니다
- protected : 같은 패키지 내에서, 그리고 다른 패키지의 자손클래스에서 접근이 가능합니다
- public : 접근 제한이 전혀 없습니다.
- default(nothing) : 같은 패키지 내에서만 접근이 가능합니다.
package pkg;
public class ModifierTest {
private void messageInside()
{
System.out.println("this is private");
}
public void messageOutside()
{
System.out.println("this is public");
messageInside();
}
protected void messageProtected()
{
System.out.println("this is protected");
}
}
import pkg.ModifierTest;
class child extends ModifierTest
{
void callProtected()
{
System.out.println("call protected");
super.messageProtected(); // super란 부모클래스를 가르친다.
}
}
public class main {
public static void main(String[] args) {
// ModifierTest modifierTest = new ModifierTest();
// modifierTest.messageOutside();
child ch = new child();
ch.callProtected();
}
}
728x90
'스파르타코딩클럽(내일배움캠프)' 카테고리의 다른 글
스파르타 코딩 클럽 3주차 3일 (0) | 2022.11.15 |
---|---|
스파르타 코딩 클럽 3주차 2일 (0) | 2022.11.15 |
스파르타 코딩 클럽 2주차 후기 (0) | 2022.11.13 |
스파르타 코딩클럽 2주차 5일 (0) | 2022.11.13 |
스파르타 코딩 클럽 2주차 4일 (0) | 2022.11.11 |