본문 바로가기
728x90
반응형

study_java30

[JAVA]16일차 0. 다형성을 왜 이용하는가? 조상클래스를 상속하는 여러 자식 클래스들은 기존의 조상클래스를 확장한다. 다형성을 이용하면 기존의 조상 클래스를 기준으로 하위 클래스들의 인스턴스를 더 효율적으로 사용할 수 있다. 다형성이나, 상속, 인터페이스, ... 등등 객체를 지향하는 언어 답게 자바는 팀 단위 프로젝트를 더 쉽게 만들어준다. 표준을 강제하여 팀에게 공통된 작업을 수행하게 하거나, 수시로 변화되는 고객의 요구에 응할 수 있도록 기존의 코드를 뒤엎지 않아도 유지 보수될 수 있게 하기 위해 우리는 자바에서 상속에서 비롯되는 다형성 등을 이용하는 것이다. 1. 상속 하지 못하도록 하고 싶으면? final의 또다른 사용 다른 클래스가 특정 클래스를 상속하지 못하게 한다거나, 특정 메소드를.. 2020. 6. 1.
[JAVA]15일차(2) instanceof 연산자 ...........ㅠ 아직 헷갈린당 package example; class GrandParent{ } class Parent extends GrandParent{ } class Child extends Parent{ } public class Test01 { public static void main(String[] args) { GrandParent gp = new GrandParent(); Parent pt = new Parent();//부모형 참조변수는 자식객체 바로 참조 가능 Child ch = new Child();//자식형 참조변수는 부모객체 바로 참조 불가 //1. 조상클래스가 자신의 클래스를 참조하고 있는 경우. System.out.println("GrandP.. 2020. 5. 31.
[JAVA]15일차 15일차에는 상속과, 상속으로 사용할 수 있는 다형성과 오버라이딩까지 배웠다. 1. 상속 상속은 상위클래스의 멤버(변수, 함수들)를 하위클래스가 물려받아서 사용할 수 있도록 하는 것이다. 상속 여부는 extends 키워드로 표현해준다. 또한, 자바에서는 단일 상속만 할 수 있다. 한번에 한 클래스만 상속할 수 있다는 뜻이다. class Parent{ int age; public void Print(){ System.out.println("부모 클래스"); } } class Child extends Parent{ String name; public void ChildPrint(){ System.out.println("자식 클래스"); } } Child 클래스는 Parent 클래스를 상.. 2020. 5. 31.
[JAVA]14일차 1. 배열 배열 내용은 이전 게시글에 이어서 설명을 추가하고자 한다. 2020/05/27 - [JAVA/JAVA_수강정리] - [JAVA]13일차 [JAVA]13일차 1.Scanner Scanner 클래스는 생성자로 전달되는 대상으로부터 데이터를 추출하는 기능을 제공한다. Scanner 클래스에 정의된 생성자 중 일부로 Scanne(File Source)/Scanner(StringSource)/Scanne.. turing0809.tistory.com 1차원 배열에 대해서는 13일차 수업 게시글에서 확인할 수 있다. 배열은 '자료형이 같은 둘 이상의 값'을 저장할 수 있는 연속된 메모리 공간을 의미한다고 하였다. 이 공간은 2차원으로도 선언할 수 있다! 2차원 배.. 2020. 5. 31.
[JAVA]13일차 1.Scanner Scanner 클래스는 생성자로 전달되는 대상으로부터 데이터를 추출하는 기능을 제공한다. Scanner 클래스에 정의된 생성자 중 일부로 Scanne(File Source)/Scanner(StringSource)/Scanner(InputStream Source) 등이 있는데, 그 중에서도 Scanner(InputStream source) 생성자를 통해 키보드로부터 입력을 받을 수도 있다. Scanner sc = new Scanner(System.in); → inputStream 생성자 1-1. Scanner 클래스 주요 메소드 Scanner 생성자로 대상을 전달하면, Scanner 클래스에 정의된 함수를 이용해 데이터를 추출할 수 있다. 그 일부는 다음과 같다. i.. 2020. 5. 27.
[JAVA]12일차 1. 오버로딩 (Overloading) 자바는 사용자가 호출하는 메소드를 찾을 때 두가지 정보를 참조한다 : 메소드 이름과, 메소드 매개변수. 이 중에서도 메소드 매개변수의 형태를 가지고 다른 메소드를 정의하는 것이 가능한데, 이것이 메소드 오버로딩이다. 오버로딩은 같은 함수반환형과 같은 함수명 일때, 매개변수의 타입과 갯수를 달리하여 함수를 정의하는 것을 말한다. 우리가 사용하는 생성자 역시 오버로딩 예시 중 하나이다. class AAA{ void simple(int p1, int p2) { } void simple(int p1, double p2) { } } public class Lecture12 { public static void main(String[] args) { AA.. 2020. 5. 26.
[JAVA]11일차 class Circle { //인스턴스 변수 double radius = 0; //static 변수 final static double PI = 3.14; //인스턴스 함수 public Circle(double r) { radius = r; } //아래 double getArea(){} 앞에 static 붙이면 radius에 빨간줄(에러남) //--> static 함수 안에 인스턴스 변수/함수가 올 수 없는 이유는 무엇일까? double getArea() { double area = radius*radius*PI; return area; } } 1. static은 무엇인가? static 키워드가 붙은 변수를 클래스 변수라 한다. static에 대해 제대로 이해하기 위해서는 데이터 영.. 2020. 5. 25.
[JAVA]10일차 1.클래스 패스: 절대 경로와 상대경로 클래스 패스는 자바 가상머신이 .class 파일을 탐색할 폴더 경로를 말한다. 클래스 패스가 뭐라고 설정되어 있는지 확인하고 싶다면, 프롬프트 창에서 'set classpath'를 입력해 주면 된다. C:\JavaStudy>set classpath 프롬프트 창으로 클래스패스를 설정하면 프롬프트 창을 껐을 때 설정내용도 사라지므로, 아마 처음 시도해본다면 classpath 환경 변수가 정의되지 않았다고 뜰 것이다. 클래스 패스를 설정하려면 set classpath뒤에 '=폴더경로'를 작성해주면 된다. 그러면 해당 폴더 경로로 클래스 패스 경로가 설정된다. 클래스 파일을 어디서 찾을 지 경로를 설정해줄 때, 경로는 절대경로와 상대경로로 나뉜다. 절.. 2020. 5. 22.
데이터 영역의 구분 1. static 영역 - 패키지나 클래스 정보가 올라갑니다. - 패키지나 클래스는 프로그램 시작과 동시에 모두 올라가는 것이 아니라, 실제로 호출 될 때 올라가게 됩니다. (JVM은 영리합니다.) - static이라는 키워드를 붙여서 선언된 필드와 메소드인 '클래스 멤버'도 static 영역에 올라갑니다. static 영역에 있는 것은 어떤 곳에서나 접근이 가능해지기 떄문에 '전역'이라는 키워드를 사용합니다. - 그러므로, static (전역) 변수는 읽기 전용이 아닌 경우에는 가능한 사용하지 말아야 합니다. (누구나 접근해서 값을 수정하면 혼란을 가져 올 수 있기 때문) - class영역 혹은 method 영역 이라고도 불립니다. - static 영역에 자리잡게되면 JVM이 종료 될 때까지 사라지지 .. 2020. 5. 21.
[JAVA]9일차 1. JVM 자바 가상머신은 운영체제에 상관없이 자바 프로그램을 실행시키기 위한 하나의 소프트웨어다. 자바 가상머신은 운영체제가 달라도 코드를 수정하지 않고 프로그램이 원활하게 실행될 수 있도록 지원한다. 이것이 자바가상머신의 핵심이자 최대장점이지만, 단점으로는 OS 위에 자바가상머신이 있어서 프로그램 수행이 조금 느리게 느껴질 수 있다. 2.생성자(Constructor) 이전 수업까지는 클래스형 변수를 초기화하는 메소드를 따로 선언을 했었다. 메인함수에서 변수를 초기화하는 메소드를 호출하여 변수의 기본 값들을 저장하고 그것을 가지고 나머지 함수로 연산을 진행했었다. 이를 대신 할 수 있는 것이 바로 "생성자"다. ConstructorClass cc = new ConstructorCl.. 2020. 5. 21.
728x90
반응형