본문 바로가기

JAVA/기초 문법

(18)
접근제한자 정리 public public int p = 3; 전체공개, 모든 접근을 허용, 가장 넓은 의미 protected protected int p2 = 4; 같은 패키지인 경우에만 접근 허용, 다른패키지라도 상속받은 자식클래스는 사용가능 private private int i = 1; 자기자신만 접근 가능 default int k = 2; default 접근 지정자. 아무것도 쓰지 않은경우, 같은 패키지에서 자유롭게 사용가능 순서대로 public > protected > default > private
Interface 인터페이스 abstract class : 일반 method + abstract method + variable JAVA는 다중상속이 불가능(부모는 1개) interface : abstract method(추상메서드로만 이루어짐->변수,일반메서드 불가능// 선언만되어있는 요소) 다중 상속이 가능하다. 설계의 사양을 빠르게 파악 할 수 있는 장점이 있다. 확장성, 관리의 목적을 가지고 있다. ** MyInterface 메서드() 호출 시 MyClass 메서드로 호출되는데 이는, 부모 인터페이스로 각각의 인터페이스로 잡아 줄 수 있기 때문 **minter.func( );는 에러가 나므로 앞에 func()를 보유 한 YouInterface로 형변환 후 실행하면 HeClass func()가 나온다 MyClass public..
추상클래스 0. 추상클래스 :추상메서드 기입, 변수 작성-> 자식 클래스에서 값 입력 public abstract class AbstractClass {//하나이상의 추상메서드를 포함 한 것 private int number; public void method() { System.out.println("AbstractClass method()"); } public abstract void abstractMethod(); //확장성->추가기입 //대부분 매개변수가 없음 } 1. child클래스 : 오버라이딩으로 추상클래스 속 동일메서드 생성 후 원하는 값 작성 public class childClass extends AbstractClass{ @Override public void abstractMethod() { ..
그냥 알아두면 좋은 개념 1.멤버변수는 자동 초기화되므로 초기화하지 않고도 값을 참조할 수 있다. 2.지역변수는 사용하기 전에 반드시 초기화해야 한다 4.명시적 초기화를 제일 우선적으로 고려해야 한다. 1. 기본값-명시적초기화-초기화블럭-생성자-> 초기화 순서 (클래스변수의 초기화시점 : 클래스가 처음 로딩될 때 단 한번 초기화 된다. 인스턴스변수의 초기화시점 : 인스턴스가 생성될 때마다 각 인스턴스별로 초기화가 이루어진다. 클래스변수의 초기화순서 : 기본값 → 명시적초기화 → 클래스 초기화 블럭 인스턴스변수의 초기화순서 : 기본값 → 명시적초기화 → 인스턴스 초기화 블럭 → 생성자) 5.힙(heap)영역에는 인스턴스(인스턴스변수)가 생성되는 영역이며, 지역변수는 호출스택(call stack)에 생성된다 6. 추상클래스와 인터페..
...num 가변인수 매개변수가 유동적이다 개발자 위주 사용 public static void main(String[] args) { // 가변인수 // 매개변수가 유동적이다 // 개발자위주 사용 allocParam(1,2,3,4,5); allocParam(23,45,39); func("hello",2,3,4); } static void allocParam(int...num) { //배열과 동일 int sum = 0; for (int i = 0; i < num.length; i++) { sum = sum + num[i]; } System.out.println("합계 : "+ sum); } static void func(String str, int...num) {//가변인수를 맨 뒤에 작성해야함 System.out.p..
function 배열 할당 배열 할당 배열 arrNum[ ]에 값을 입력 후 func2(arrNum)으로 출력 (func2에서는 배열을 생성후 입력값으로 받아 조건완성 후 출력함) int arrNum[] = { 1, 2, 3}; func2(arrNum); //f22:arr[0] = 8 //f22:arr[1] = 2 //f22:arr[2] = 3 for (int i = 0; i < arrNum.length; i++) { System.out.println("f2:arrNum["+i+"] = "+arrNum[i]); } //f2:arrNum[0] = 8 //f2:arrNum[1] = 2 //f2:arrNum[2] = 3 static void func2(int arr[]) {//address에 의한 할당 들어가는 값 int arr[]은 ..
function 함수 원리 function : 함수, 독립적인 프로세스 ( method : 함수, class에 포함되어있는 함수 C언어 : function // 절차지향, 포인터(속도빠름) Java : class ) 목적 : 코드의 간략화 (동일한(같은 처리) 코드를 집약적으로 설정 할 수 있다 ) 가독성 : 읽기 쉽게 작성하는 성질 return 값 함수명(자료형 가상인수 n개) { ------ 처리 return 값;
Sorting / 선택 Sorting = 정렬 숫자의 크기에 따라서 순번대로 배치하는 처리. 오름(큰 값이 뒤로), 내림차순(큰 값이 앞으로)정렬이 있다. 오름차순 : 입사년도, 나이순 내림차순 : 연봉순위 선택, 버블, 합병, 퀵 -> 빠른 *주요 코드 1차원 배열 속 숫자를 오름차순 정렬 ( > || number[j]) { // > 오름 (if문에서 결정) temp = number[i]; number[i]= number[j]; number[j]= temp; } } } for (int i = 0; i < number.length; i++) { System.out.println("number["+i+"] = "+number[i]); }