목록분류 전체보기 (478)
한 걸음 두 걸음
final final클래스와 final메소드가 있는데, final을 선언하면 최종 클래스(종단 클래스) 혹은 최종 메소드가 됩니다. 즉 더 이상 상속 혹은 재정의가 불가능해집니다. (변경 불가) 메소드가 final이면 서브클래스에서 오버라이딩이 불가능하고 클래스가 final이면 서브클래스를 만들 수 없습니다. public final class E{ public final String get(){ return "ㅎㅎ"; } }final 사용 장점 속도가 더 빨리집니다. 자식클래스가 사고치는 것을 막을 수 있어 보안이 강화됩니다. static과 final에 대한 포스팅 : https://onepinetwopine.tistory.com/480
재사용을 위해 상속 혹은 결합을 하는데, 상속에 대해 알아보겠습니다. 상속 상속이란 이미 존재하는 클래스로부터 멤버들을 물려받는 것입니다. 이 때 상속하는 클래스를 수퍼클래스 혹은 부모클래스, 상속받는 클래스를 서브클래스 혹은 자식클래스라고 합니다. 수퍼클래스(부모클래스, 베이스클래스)와 서브클래스(자식클래스, 파생된클래스 ) class Employee{ } class Manager extends Employee{ } 자바에서 상속은 extends키워드를 사용하여 상속시킬 수 있으며, 클래스 정의 옆에 작성해주면 됩니다. 1. 오버라이딩 메소드 재정의란 서브 클래스가 필요에 따라 상속된 메소드를 다시 정의하여 사용하는 것을 의미합니다. 같은 메소드 명을 가지고 있지만 상속받은 클래스에서는 다른 작업을 하..
네트워크 구조도 1. 표준번호 ACL 설정 및 패킷 필터링 확인 2. 확장번호 ACL 설정 및 패킷 필터링 확인을 해보겠습니다. 1. 표준번호 ACL 설정 및 패킷 필터링 확인 DNS, DHCP, OSFT가 설정되어 있다는 가정 하에 진행되었습니다. PC0이 220.10.6.0네트워크에 접근할 수 없도록 방화벽 설치 Router> Router>enable Router#conf t Enter configuration commands, one per line. End with CNTL/Z. //access-list(ACL)설정 Router(config)#access-list 1 deny 220.10.1.2 0.0.0.0 Router(config)#access-list 1 permit 220.10.1.0 0...
static으로 지정된 변수나 함수는 프로그램이 시작될 때 생성되고 프로그램이 종료될 때 소멸됩니다. final으로 지정되면 변경이 불가능합니다. static a = 1; a++; //전역변수처럼 사용됩니다. 어디서든 사용가능합니다. static final a = 1; a++; //불가 ** Static으로 지정된 것은** 객체를 만들기도 전에 생성되므로(프로그램 시작 시) 클래스 내부의 static 메소드나 변수는 클래스명을 이용하여 접근할 수 있습니다. Class A{ static int a = 10; } public class Main { public static void main(String[] args) { System.out.println(A.a + ""); //10 출력 } } 단, stat..
접근제한자 public 클래스내부 / 동일패키지 / 하위클래스 / 그 외에서 모두 사용할 수 있습니다. private 클래스내부에서만 접근이 가능합니다. protected 클래스내부 / 동일 패키지 / 하위클래스 에서만 접근이 가능합니다. default(생략되었을 때 사용되는 접근자)는 클래스내부와 동일패키지에서 사용할 수 있는데 많이 사용하지는 않습니다. 웬만하면 명시하는 것이 좋은 코드입니다. 주로 클래스 내부의 변수는 private로, 함수는 public으로 설정하며 내부 자원을 지키도록 사용합니다. (getter setter를 사용합니다.)
메소드 클래스 내부에 위치한 함수를 메소드라 하는데 JAVA는 객체지향개발언어이므로 모두 클래스 내부에 위치합니다. 때문에 모든 함수는 메소드가 됩니다. 메소드 구조 메소드 구조는 다음과 같습니다. public class 클래스명{ 접근제한자 반환타입 메소드명(파라미터){ ... return 반환할 값/수식 } }이를 보다 이해하기 쉽게 작성하자면 다음과 같습니다. public class MyClass{ public int myMethod(int param){ return param } }이러한 형식으로 사용하실 수 있으며, 메소드의 이름은 보통 소문자로 시작하는데 동사로 시작해서 명사나 형용사가 옵니다. 그냥 이해하기 쉽게 camelCase를 지켜서 작성하시면 좋습니다. static 함수 / 정적메소드..
Map 개념 Map은 mapping의 약자인 자료구조로, ("Key","Value") 값으로 pair를 이룹니다. Java에서 순서가 있는 자료나 집합공간을 만들기 위해 Collection를 제공하나, 순서가 없는 Map과 같은 것은 별도로 제공합니다. Map 특징 데이터를 키를 통해 관리합니다. 인덱스가 없고 데이터의 순서가 없습니다. Map의 종류 HashMap : 동기화를 보장하지 않는 Map클래스로, value에 null을 저장할 수 있습니다. 순서를 보장하지 않으나 해싱을 사용하므로 빠릅니다. (싱글스레드는 HashMap을 사용하지만 멀티스레드 및 동기화가 필요하다면 MapTable을 사용합니다.) TreeMap entry를 트리형식으로 저장하기 때문에 순서를 보장합니다. LinkedHashMa..
배열의 초기값 int i = new int[3];이와같이 배열을 만들어 사용할 땐, 따로 값을 지정해주지 않는 이상 default값이 들어가게되는데 int의 경우는 0, char의 경우는 '0' String의 경우는 null boolean의 경우는 false double의 경우는 0.0 유저가 만든 클래스의 객체 = null 이 들어갑니다. for loop int[] i = new int[4]; for( int item : i ){ System.out.println(item); //i의 0 인덱스부터 3까지 모두 차례대로 돌아가며 프린트합니다. }이는 int[] i = new int[4]; for(int item = 0; item < i.length(); i++){ System.out.pr..