본문 바로가기

IT/JAVA19

[JAVA/자바] 접근 제어자 - public, protected, default, private 접근제어자 종류 접근 범위 public 접근 제한없다. protected 같은 패키지 내에서 + 다른 패키지의 자손 클래스에서 접근이 가능하다. default 같은 패키지 내에서만 접근 가능 private 같은 클래스 내에서만 접근 가능 * 패키지 = 폴더 * 하나의 대상에서 1개만 사용할 수 있습니다. class 앞에는 public과 default를 붙일 수 있는데 아무것도 안 써져있으면 default이다. class 안 멤버에는 private, default, protected, public 다 가능이다. 예제 * 하나의 Source File에 Public Class는 하나만 있어야한다. * Public Class의 이름과 Source File이름이 일치해야 한다. 2022. 11. 6.
[JAVA/자바] 메소드 - 입력값, 출력값,return 리턴값,매개변수,인자 메소드란? 객체 간의 데이터 전달의 수단으로 사용됩니다. 더 쉽게 설명하자면 복잡한 것을 정리해서 단순하게 만들어줍니다. 장점 : 중복코드제거, 관리 용이, 재사용 가능 등이 있습니다. 첫 번째 사진은 ABC를 2번 출력하기 위한 코드이다. ABC를 100번 반복한다고 가정했을 때는 코드를 100번 입력하는 비효율적인 방법이다. 두 번째 사진은 printExample이라는 메소드를 만들어서 public static void main에서 printExample( )로 printExample 메소드를 실행시킨다. 똑같은 코드를 반복할 때에는 printExample( )를 추가해주기만 하면 된다. 훨씬 코드를 간결하게 사용할 수 있으며 만약 "A"를 "a"로 바꿀 때는 printExample메소드에서 바꿔주기.. 2022. 11. 6.
[JAVA/자바] 객체지향 프로그래밍 - 클래스, 캡슐화, 다형성, 상속,추상화 자바는 객체지향 프로그래밍(Object-Oriented Programming) 언어이다. 객체 지향 프로그래밍이란? 부품 객체를 먼저 만들고 이것들을 하나씩 조립해서 완성된 프로그램을 만드는 기법. 객체란? 속성과 동작을 가지는 모든 것. 객체는 필드(속성)와 메소드 (동작)로 구성된 자바 객체로 모델링 할 수 있다. 객체들은 서로 간의 기능을 이용하고 데이터를 주고 받으며 상호 작용한다. 또한 서로간에 메소드를 호출하고 결과를 받는다. 클래스란? - 객체를 만들기 위한 설계도. 자바에서 객체를 사용하기 위해서는 객체를 설계한 클래스를 만들어야 한다. 클래스에는 객체를 생성하기 위한 필드와 메소드가 정의되어 있다. 클래스로부터 만들어진 객체를 해당 클래스의 인스턴스라고 한다. (객체 = 인스턴스) 하나의.. 2022. 11. 6.
[JAVA/자바] 유효범위 - 전역변수, 지역변수 유효 범위? 여러 개발자들과 프로그램을 협업하거나 프로그램이 커지면서 여러 가지 이유로 이름이 충돌될 수 있다. 이러한 상황을 해결하기 위해 유효 범위(scope)라는 개념이 생겼다. 간단하게 말하자면 {} 범위 내에서 선언한 변수는 {} 범위 내에서만 유효하다. 지역변수, 전역 변수 지역변수 - 메소드 내에서만 접근 할 수 있는 변수. 메소드 a에서 변수 b는 a메소드 밖에서는 영향을 주지 않는다. 예제) main이 먼저 실행되고 a메소드를 실행시킵니다. a메소드에서 변수 i=10을 선언하고 b메소드를 실행시킵니다. b메소드에서 i를 출력하려고 하지만 i값을 찾을 수가 없어서 오류가 납니다. ( a메소드에서 만든 변수 i는 a메소드에서만 사용이 가능하기 때문 ) 전역 변수 - 클래스 전역에서 접근할 수.. 2022. 11. 6.
[JAVA/자바] 객체지향 - 인스턴스, new, this 인스턴스? 클래스(설계도)에 따라 만들어진 제품(객체). 위와 같이 입력값의 합과 평균을 구할 수 있는 코드가 있다. 지금은 괜찮지만 프로그램이 커지고 코드가 복잡해진다는 상상을 해보았을 때 다른 누군가가 변수(left, right), 메소드(sum, avg)가 다른 의미로 사용할 수가 있고 버그로 이어진다. 이 문제를 해결하기 위해 위의 코드에서 변수로 상징되는 데이터, 연산으로 상징되는 메소드를 서로 연관되어 있는 것들끼리 그룹핑하는 객체지향의 개념이 탄생되다. 인스턴스, new 코드를 위와 같이 바꿔주었습니다. 이제 main메소드 안에 있는 new라는 코드를 살펴보겠습니다. Calculator 객체를 생성해서 변수 c1에 담아 구체적인 객체를 만드는 행위를 인스턴스라고 합니다. * 데이터형은 객체의.. 2022. 11. 6.
[JAVA/자바] 생성자, 초기화 생성자 (Constructor) 인스턴스가 생성될 때마다 호출되는 '인스턴스 초기화 메소드' 이름이 클래스 이름과 같아야 한다. 반환값이 없음으로 리턴값이 없다. (void 안 붙임) 모든 클래스는 반드시 생성자1개를 가져야 한다. 기본 생성자 클래스 이름 ( ) { } 매개변수가 없는 생성자. 생성자가 하나도 없을때는 컴파일러가 자동으로 추가해 준다. 매개변수 생성자 클래스 이름 ( 타입 변수명, 타입 변수명, ''''''' ) { } 매개변수가 있는 생성자. 인스턴스 생성 시 수행될 코드. 초기화 객체를 만들고 hour, minute, second의 자동초기화 값인 기본값 '0'에서 각각 12, 34, 56로 원하는 값을 처음으로 저장하는 것을 초기화라고한다. 생성자 위의 코드에서 생성자를 사용하여서.. 2022. 11. 6.
[JAVA/자바] 인자와 매개변수의 차이 1. 인자 (argument) 인자는 메소드, 생성자를 호출할때 데이터를 매개변수에 값을 전달해준다. 2. 매개변수 (parameter) 매개변수는 메소드, 생성자를 선언할 때, 어떤 형태로 데이터값이 들어올지 정의해준다. 예제 ) main 메소드가 먼저 실행이 되고 sum메소드를 호출하는 sum(3, 5)에서 3과5가 인자이다. 이 3과 5값을 sum 메소드에서 int형 변수 a, b로 받는다고 적어져있다. 이때 ( )안에 있는 int a, int b가 매개변수이다. 2022. 11. 6.
[JAVA/자바] toString() 과 String.valueOf()의 차이 toString()과 String.valueOf() 두 메서드는 모두 String으로 변환하는 데 사용됩니다. 그래서 어떤 상황에서 사용해야하는지 헷갈릴 수 있습니다. toString() - 변환의 대상이 Null이 였을 경우는 Null PointException이 발생. - Object에 담긴 값이 String이 아니어도 출력 가능. - ex) obj.toString( ) String.valueOf() - 변환의 대상이 Null이었을 경우는 "null"로 출력. - ex) String.valueOf( obj ) 2022. 11. 6.
[JAVA/자바] length, length(), size 의 사용법/차이 자바에서 길이를 반환할 때 length, length(), size가 있어서 헷갈리기 쉽다. 그러기에 차이를 제대로 이해하고 사용해야 한다. length - length는 배열( [ ] )의 길이를 반환 length() - length()는 String 문자열의 길이를 반환 size() - size()는 ArrayList, Set 등 메모리의 실제 사용되는 크기를 반환 2022. 11. 6.