자바기초(7)
-
Java - 추상메서드, 인터페이스
자바의 메서드에는 일반메서드, 정적메서드 그리고 추상메서드가 있다. 세개의 특징을 보면 아래와 같다. 1.일반메서드->객체생성으로 호출가능=>특별한 목적,기능 2.정적메서드->객체생성 없이 호출이 가능->단순,반복,보편적인 기능 3.추상메서드--->1)메서드의 선언만 되어있는 메서드 public abstract void go(); //1) ~메서드명(); ======== abstract public void go(){} //2) ->기능이 없는것 ======== 일반메서드 2)추상메서드선언을 위해 앞에=> abstract 예약어를 써준다. 3)추상메서드를 한개라도 가지고 있는 클래스를 추상클래스라고 한다. =>추상클래스를 일반클래스와 구분 abstract class 클래스명 ** 추상클래스특성 ** 1)..
2020.08.23 -
Java - static(정적)
java에서 변수나 메서드를 선언할 때 static이 붙는 경우가 있다. static은 정적이라는 뜻으로 정적메서드, 정적변수를 선언하면서 사용된다. 정적메서드, 정적변수로 선언을 하게 된다면 모든 객체가 해당 변수, 메서드를 공유 가능하다. 단, 정적 변수, 메서드는 일반 변수, 메서드와 다른 메모리 공간을 사용하기에 정적메서드에서 일반적인 방법으로 일반 변수 및 메서드를 사용 불가하다. 사용하기 위해서는 해당 객체를 호출하고 해당객체.변수명을 통해서 사용 가능하다. 1. 정적 멤버(클래스 멤버)는 static 키워드가 붙은 메소드 및 필드(전역변수)를 의미한다. 2. static은 여러 인스턴스에서 동일한 데이터나 로직을 공유해야 할 때 사용한다. 3. 정적 멤버는 클래스명으로 바로 사용이 가능하다...
2020.08.23 -
Java - final
자바에서는 상수를 선언하기 위해 final을 사용한다. 변수등에 final이 붙게 된다면 더이상 수정이 불가능하다. 1. 변수 앞 final => 변수에 새로운 값 대입 불가 2. 메서드앞에 final =>상속은 허용해주는데 특별히 중요한 메서드만 오버라이딩 금지 하기위한 목적 3. 클래스 앞에 final =>처음부터 상속자체가 불가->모든 메서드는 오버라이딩 불가 예제 소스 //3.final class 클래스명=>상속금지 클래스=>허용X=>중요한 클래스(System) final class Parent{ //1.final + 멤버변수 또는 지역변수=>상수화가 된다.(값이 고정)=>전부 대문자로 사용 final int COUNT=1; //2.final + 메서드=>상속은 허용해주지만 오버라이딩(=재정의)만..
2020.08.23 -
Java - 접근지정자
Java에서는 보안등 여러가지 이유로 클래스나 객체, 메서드에 다른 사용자나 객체등이 접근하는 것을 막을 수 있다. 이를 접근 지정자라 한다. 자바에서 접근지정자는 public, default, protected, private 네가지 종류가 있다. 1.public 접근지정자=> - 같은 패키지에 있는 클래스들끼리 접근 O - 다른 패키지에 있는 클래스들끼리 접근 O - 자기 클래스내에서도 접근 O (private) - 상속한 객체로 접근 가능 2 .private 접근지정자=> - 같은 패키지에서는 접근X - 다른 패키지에서도 접근X - 자기 클래스내에서만 접근 O 3.(default) 접근지정자=> - 같은 패키지에 있는 클래스들끼리 접근 O - 다른 패키지에 있는 클래스들끼리 접근X - 자기 클래스내..
2020.08.23 -
Java - 상속(1)
코드를 작성하다보면 한 객체에 있는 변수와 메서드들이 다른 객체에도 그대로 쓰이는 경우가 있다. 매번 같은 변수와 메서드를 작성하면 코드의 중복이 일어난다. 이를 막기 위해서 자바에는 상속이라는 기능이 있다. 상속을 선언하면 상속을 선언한 클래스(A)는 상속해주는 클래스(B)의 변수 및 메서드를 그대로 사용 가능하다. 이때 A를 자식 클래스, B를 부모 클래스라고 부른다. 아래와 같이 클래스 선언시 extends를 붙여서 작성한다. class A extends B{ } 상속을 받으면 좋은점 1.기존의 부모클래스의 멤버변수,메서드를 그대로 사용 (부모의 소스코드를 재사용(=재활용)) 2.코딩양이 줄어들고 개발시간이 단축 상속의 특징 1.부모->멤버변수,메서드를 상속(O)->***생성자는 상속불가(X) 단)..
2020.08.23 -
Java - 배열
거의 모든 프로그래밍 언어에는 배열이라는 개념이 존재한다. Java에서 배열은 같은 자료형의 자료를 더욱 편리하게 관리하기 위해서 사용한다. 배열은 우리가 생활에서 같은 종류의 물건들을 한 상자에 담아서 관리하는 것이라 생각하면 비슷하다. 배열=>같은 자료형의 변수들의 집합체 서로 다른 자료형의 변수들의 집합체(=>구조체) 배열을 사용하지 않으면 1.변수이름이 많아지면 관리상의 어려움이 있다. 2.처리속도가 느려진다. int s[]; String str[]; 위와 같이 자료형을 적어주고 []을 붙임으로써 배열을 선언했다. int su[]=new int[3]; 이렇게 3의 크기를 가진 배열을 생성했다. 자바에서 배열의 크기는 변하지 않는다. su[0]=10; su[1]=20; su[2]=30; 배열의 인덱..
2020.08.23