목록Java/Mega (99)
코드 그라데이션
오버로딩 - 생성자 또는 메소드에 해당 - 생성자명과 메소드명을 똑같이 하고 매개변수의 차이로 호출하는 구조를 만드는 것 - 리턴 타입은 무관하다 개발 => 생성 + 사용인데, 이 메서드 오버로딩 개념은 사용에 초점을 맞추는 것이다. 1. 메서드 오버로딩 ex. int add(int a, int b){ return a + b; } double add(double a, double b){ return a + b; } 이렇게 되어 있으면, main에서 메서드를 출력하려면 add(5,10) add(2.0,3.0) 이게 다 가능하다는 소리 ex2. 기준 : int add(int a, int b) 라고 하면 메서드 오버로딩 기준으로 double add(int c, int d) // X int add() // O ..
import java.util.Random; class Player { int num; //레인번호 String country; // 국가 int m; // 전진거리 Player(int num, String country) { // 생성자 => 레인번호, 국가 this.num = num; this.country = country; } void runAndCheck(int num, Random r) { // 이동거리(전진) 실행 메서드 // 밖에서 레인번호만 알려주면 된다. if (num != this.num) { //돌발 레인번호와 내 레인번호가 일치하지 않으면ㅇ m += r.nextInt(10) + 1; // 전진(전진거리에 이동거리만큼을 누적) } System.out.println(country + ..
코드 class C { int a; D d; } class D { String str; } public class HasTest { public static void main(String[] args) { C c = new C(); //1 c.d = new D(); // 2 c.d.str = "안녕하세요~~~"; //3 c.a = 10; //4 System.out.println(c.a +c.d.str ); // 5 } } C c = new C(); c.d = new D(); c.d.str = "안녕하세요~~~" c.a = 10; 따라서 System.out.println(c.a +c.d.str ); 는 10안녕하세요~~~ 출력.
Case1 B makeB(){ b = new B(); //B 객체를 생성 선언되어 있는 변수 b에 대입 return b; } 매번 makeB()를 하면 new를 해서 b를 만든다. 새로운 객체를 매번 넣어준다는 소리다. 클래스 B에 있는 k는 객체에 붙는다. (static 없으므로) 1)에서 a 객체를 만들고 2)에서 a에서 makeB()를 한다. 이 때 B라는 객체가 생길 것이고, 그 결과를 b1이라는 변수에 저장. 즉 b1과 B 객체가 연결 3)에서 b1을 타고 들어와서 k에 10 값을 대입. 4)는 a를 통해서 b에 접근해서 b에 있는 k에 20을 대입. 즉, b1.k와 a.b.k는 위치가 같다. 지금 위 그림에선 편의를 위해 노란색 상자 B를 A 내부에 집어넣은 것처럼 표현했지만, 사실 정확히 말..
// 주석참고!!! package megait.backend_lecture.Day19; class B { } class C { B[] b = new B[5]; //멤버변수 has 관계 (변수만 있으면 Has관계 가능하다) // 그러면 당연히 배열도 가능한 것이다. } class D { //has 관계?? 아니다! // 멤버변수로 갖는 거랑 메서드로 부르는 거랑 차이가 있으므로 // 내가 실제로 가지고 있어야 한다. B make(B[] b) { b[2] = new B(); return b[2]; } } class E { D[][] d = new D[3][3]; /* D[][] sendD(D[][][] d, int i, int j, int k) { return d[0]; // 자료형으로 받고 싶은 만큼 뒤에..
// 1. A학생 색연필 while (true) { System.out.println(""); System.out.print(a.name + " 색연필 색깔 골라주세요 : "); String color = sc.next(); //1) 색이 올바르게 입력된 경우 => 문구점에 있는 펜을 학생에게 줘야. if (color.equals("주황색") || color.equals("초록색") || color.equals("노란색") || color.equals("파란색")) { // 부족한 부분 ?? 벌써 팔렸습니다. 색깔이 다 돌면서 없으면 팔린 것. //i를 바깥에서 초기화 할 수 있도록 해줌. 왜냐면 다 팔린 것까지 쓸 것이기 때문에 계속 필요하므로 // 1-1. 문방구에서 색깔이 맞는 색연필 찾기 Colo..
package Day16; class Car{ String color; String menu; int maxSpeed; Car(String color, String menu, int max){ // 고생방지 this.color = color; this.menu = menu; maxSpeed = max; // 매개변수의 이름을 바꿔서 넣으면, this를 안 써도 된다. } void dirve(String driver) { // 여기가 비어있으면 비어있는대로 출력이 될 것이니까. System.out.println(driver+"자동차 색깔 "+color+"이고 제조사가 "+menu+"인 차를 최고속도로 "+ maxSpeed+"로 운전을 합니다."); } } class Bicycle{ String menu; ..
class B{ //static int a1; int a1; int b1; B(int a, int b){ a1 = a; b1 = b; } } public class CTest { public static void main(String[] args) { // TODO Auto-generated method stub B b = new B(5,7); //a1 5 0 b1 7 b.a1 = 20; //a1 = 20, b1 = 7 //static a1로 바뀌면 B 객체가 100개 만들어지더라도 a는 하나가지고 쓰면 되어서 하나. //static이면, a는 객체 만들 필요 없이 B.a1 찍으면 사용이 가능함. } } Has 관계 클래스 내부에 다른 클래스의 요소를 가지고 있는 관계 상황설정 Class A{ int a..