오늘은 자바 학습을 위주로 작성해야겠다.
if 조건문에서 elif 사용 불가. else if 로 사용해야함.
String result = (a <10) ? "10보다 작습니다." : "10보다 큽니다.";
변수 a가 10보다 작냐? 물어봤을때 True 이면 "10보다 작습니다." False면 "10보다 큽니다."를 출력해준다. A? B: C; 가 중요!
while - 조건을 하나만 적어주고 {}안에 다른 조건을 적어준다
do {} while - do{}을 먼저 수행한 후에 while 반복문을 돈다.
class Phone {
String model;
String color;
int price;
}
public class Main {
public static void main(String[] args) {
Phone galaxy = new Phone();
galaxy.model = "Galaxy10";
galaxy.color = "Black";
galaxy.price = 100;
Phone iphone =new Phone();
iphone.model = "iPhoneX";
iphone.color = "Black";
iphone.price = 200;
System.out.println("철수는 이번에 " + galaxy.model + galaxy.color + " + 색상을 " + galaxy.price + "만원에 샀다.");
System.out.println("영희는 이번에 " + iphone.model + iphone.color + " + 색상을 " + iphone.price + "만원에 샀다.");
}
}
위 코드에서 클래스는 Phone이고 인스터는 galaxy, iphone 이다.
class Calculation{
int add(int x, int y){
return x+y;
}
int subtract(int x, int y){
return x-y;
}
}
public class Main {
public static void main(String[] args) {
Calculation calculation = new Calculation();
int addResult = calculation.add(1, 2);
int subtactResult = calculation.subtract(6, 4);
System.out.println(addResult);
System.out.println(subtactResult);
}
}
위 코드에서 메소드는 아마 add,subtract 인 것 같다. 더하기 빼기를 수행하는 걸 하나로 묶은것...?
calculation 은 인스턴스다!! (소문자이다, 헷갈리면 안됨!)
생성자
메소드의 일종으로 인스턴스를 생성할 때 불리는 초기화 메소드.
클래스 이름과 똑같은 이름으로 지어줘야한다.
class Phone {
String model;
String color;
int price;
public Phone(String model, String color, int price) {
this.model = model;
this.color = color;
this.price = price;
}
}
위 코드에서 public Phone 부분이 생성자(constructor)이고 윈도우에서 Alt + Insert 키로 자동 완성 시킬 수 있다! 맥에서는 커맨드 + N 이었..을...걸..?
Phone galaxy = new Phone("갤럭시","검정색",100);
생성자를 사용하면 이렇게 간단하게 코드를 만들 수 있다! 먼저 4줄의 코드만 작성해도 이 후에 4줄씩 안 적어도 되는 아주아주 편리한 기능인 듯!
저 위에 적은 이 코드와 똑같은 것이다
Phone galaxy = new Phone();
galaxy.model = "Galaxy10";
galaxy.color = "Black";
galaxy.price = 100;
상속
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 = new Dog("하하");
dog2.cry();
dog2.swim(); // 얘는 상속을 받지 못해서 사용할 수 없음
}
}
Animal 이라는 부모 클래스를 만들고, Dog라는 클래스를 extends Animal이라고 선언해서
자식 클래스로 만든다. 그러면 Animal에서 사용하던 cry()라는 함수를 Dog에서 만들지 않아도 사용할 수 있다!
하지만 Animal dog2는 Dog클래스를 가져온게 아니라 Animal클래스를 가져왔기 때문에
cry()는 사용할 수 있으나 swim()은 사용 할 수 없다!
또.... 오버로딩과 오버라이딩이라는 것이 있는데... 오버라이딩은 이해를 하겠는데
오버로딩은 뭐여?? 오버로딩이 좋다는 소리여 나쁘단 소리여...
빨간줄 뜨면 뭐가 잘 못 됐는지 확인해보자! 그게 젤 빠르다
붕어빵틀ㅋㅋㅋ 적절한 비유네요 붕어빵 먹고 싶어졌어요 ㅎ