목록Programming/Java (9)
개발이글스
문제를 해결하다보면 String 을 char로 변환해서 아스키코드 등으로 연산을 마친 후에 다시 String 타입으로 return하고 싶을 때가 많다. 1. String.toCharArray() : 문자열을 한 글자씩 쪼개서 이를 char타입의 배열에 집어넣어주는 친절한 메소드이다. String (문자열) 을 char형 배열로 바꾼다. String str = "Hello World"; char[] charArr = str.toCharArray(); 추가로 char형 배열을 합쳐서 하나의 String으로 만들 수도 있다. String str2 = new String(charArr); 2.String.valueOf() 어떠한 다른 타입의 변수를 모두 String의 형태로 바꿀 수 있게 도와주는 녀석이다. i..
인터페이스와 추상클래스는 엄연히 다.른.것. 입니다!! 근데 왜 자꾸 헷갈리는거지.. 이 글로 완벽히 정리&이해 해보도록 하겠습니다. 스따뜨!!!!!!!! 추상클래스 Abstract Class 추상클래스는 예약어 abstract 를 붙여 클래스를 선언하게 됩니다 -> abstract class Car { 추상클래스는 추상메소드를 0개이상 포함하고 있습니다. 메소드도 마찬가지로 -> public abstract String name(); 어라? 근데 메소드인데 왜 구현하는곳이 없어? 동작하는거 써야되는데? 바로 추상메소드의 특징입니다. 선언부 있고~ 구현부 없고~ -->작성되어있지 않은 구현부는 자식클래스에서 오버라이딩해서 사용하게됩니다. 그런데, 추상클래스라고해서 꼭! 추상메소드를 포함해야하나요? 아.니..
생성자 오버로딩이란? 매개변수를 달리하는 생성자를 여러개 선언하는 것을 생성자 오버로딩이라고한다. 다음은 Car class의 생성자를 오버로딩한 예시 이다. class Car{ Car(){--} Car(String model){--} Car(String model, String color){--} Car(String model, String color, int maxspeed){--} ! 생성자 오버로딩 시 주의할 점은 매개변수의 타입과 개수 그리고 선언된 순서가 똑같을 경우 매개 변수 이름만 바꾸는 것은 생성자 오버로딩이 아니라는 점입니다. ex) Car(String model, String color){--} Car(String color, String model){--} -------> 생성자 오버..
캐스팅 Casting 캐스팅이란 "타입을 변환하는 것" 을 말하며 흔히 형변환이라고도 한다. 자바의 상속관계에있는 부모와 자식클래스 간에는 서로 형변환이 가능하다. 업캐스팅 Upcasting 업캐스팅이란 자식클래스의 객체가 부모 클래스 타입으로 형변환 되는것을 말한다. 아래 코드에서 부모 클래스는 Person 자식클래스는 Student 이다. 아래 코드에서 Person p = s; 부분이 업캐스팅한 부분이다. p가 Student 객체를 가리키지만, p는 Person 타입이기 때문에 Person 클래스의 멤버에만 접근이 가능하다. 그렇게 때문에 p.check 에서 컴파일 타임 에러가 발생합니다. class Person{ String name; Person(String name){ this.name = na..
1. super super은 자식클래스가 부모클래스로부터 상속받은 멤버를 참조할 때 쓰는 참조변수입니다. 클래스 내의 멤버변수와 지역변수 이름이 같을 경우 구분을 위해서 this를 사용하듯이 부모클래스와 자식 클래스의 멤버의 이름이 같을 경우 super을 사용합니다. class Parent{ int x = 10; } class Child extends Parent{ int x = 20; void childMethod(){ System.out.print("x="+x); System.out.print("this.x=" +this.x); System.out.print("super.x="+super.x); } } -> 부모클래스 Parent 의 멤버변수는 x, 자식클래스 Child의 멤버변수도 x입니다. 자식클..
if문 if(조건식){ 수행문 } //블럭 안에 수행문이 하나일 경우 괄호를 생략 가능하다. if (조건식) 수행문; 조건식이 true(참)일 경우 블럭안의 문장이 수행된다. 조건식의 결과가 반드시 true 또는 false 이어야 하므로 비교연산자와 논린연산자로 구성된다. if (조건식) { 수행문1; //조건식이 참일 경우 수행. } else { 수행문2; //조건식이 거짓일 경우 수행. } //조건연산자 (조건식) ? 결과1 : 결과2; //조건석이 참일경우 결과1, 거짓일 경우 결과2. if-else if(조건식 1){ 수행문1; } else if(조건식2){ 수행문2; } else if(조건식3){ 수행문3; } else{ 수행문4; }; 조건이 여러개일 경우 if-else문으로 표현 가능하다. ..