Java

    JAVA 자바 웹 개발 Day7 (Code1 )

    70. package day07; public class Test70 { static void add() {} static void add(int x) { //위와 오버로딩 됨 System.out.println(x); } //static void add(int a) {} //위와 오버로딩 안됨 static void add(long a) {} static void add(long a, int b) {} static void add(int a, long b) {}//전부 오버로딩 가능 public static void main(String[] args) { add(); add(100); add(100L,100); //앞에가 롱타입이므로 꼭 L을 붙여줘야 롱으로 인식함. 안그러면 int로. } } 클래스 변수..

    JAVA 자바 웹 개발 Day7 (Note): 생성자, this, 객체 배열, 접근 지정자, 캡슐화

    2022-02-15 생성자 Constructor 1. 객체가 생성될 때 객체의 초기화를 위해 실행되는 메서드. 아예 다 채워놓고 생성하겠다…… 자바의 모든 클래스는 생성자를 가지고 있다. 생성자가 기술이 되어 있지 않는 경우엔 눈에 보이진 않지만 "기본 생성자"가 아무것도 없는 형태로 자동으로 만들어져 호출된다. 2. 자바 초기화(초기화 세팅하기)는 3가지 방식이 있다. 1) 생성자: 인스턴스 변수를 초기화하기 위해 주로 사용. 2) 명시적 초기화: int a= 10; 이렇게 값 대입하는 것. 3) 초기화 블록: 클래스 블록 / 인스턴스 블록: 생성자보다 먼저 초기화. 애초부터 처음부터 세팅을 해줘야 할 경우.. [구조] A. 클래스 블록 static { //초기화에 필요한 코드들 } 프로그램 실행 시 ..

    JAVA 자바 웹 개발 Day6 (Code2)

    65. package day06; import java.util.Scanner; //재귀호출: factorial: 1부터 입력 받은 수 n까지 곱한 결과를 돌려주는 메서드. public class Test65 { static long factorial(int n) { //롱 if(n==1) { return 1; } else { return n * factorial(n-1); //롱 //내 안에서 나를 불러서 위에 팩토리얼에 다시 4를 넣어줌 } } public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("정수 입력> "); int n = Integer.parseInt(sc.nextLine..

    JAVA 자바 웹 개발 Day6 (Code1)

    60. package day06; class TestA { int a; static int b; Test60 t; //인스턴스 참조형 static String abc; void test() { int def; // test라는 메서드 안에 있는 지역변수. } } public class Test60 { public static void main(String[] args) { TestA aaa =new TestA(); System.out.println(aaa.a); System.out.println(TestA.b); } } 61. package day06; class TestB{ //입력, 리턴 없는 형태 void hello(){ System.out.println("Hello!"); System.out.pr..

    JAVA 자바 웹 개발 Day6 (Note): 메서드

    2022/02/14 메서드 (Method) 어떠한 작업을 수행하기 위한 명령문들의 집합. main()도 메서드의 일종. 메서드: 연산을 처리하는 곳. 변수: 그 결과를 저장하는 곳 메서드는 어떤 값을 입력받아 처리하고, 그 결과를 하나 돌려줄 수 있는 구조. -> 결괏값, 리턴 값. 목적 & 장점: 재사용이 가능. 반복적인 코드 작성을 줄일 수 있음. 필요할 때마다 메서드로 묶어놓는다. 코드 관리가 용이함. 재사용성을 높이기 위해서 한 가지 메서드는 한 가지 기능만 하도록 작성하는 게 좋다. 1. 메서드 정의와 사용: ① 입력값, 리턴값 없는 경우 정의: 리턴 타입-> void 메서드명 (){ //수행할 코드들…… } ---------------------------- 사용(호출): 메서드명(); ② 입..

    JAVA 자바 웹 개발 주말 연습 문제 풀기 02/12

    35. package day04; import java.util.Scanner; public class Test35_1 { public static void main(String[] args) { // 문제2-1. 게임 랭킹 보드. 5개의 데이터를 저장할 수 있는 users와 scores라는 // 배열이있고, users배열에는 유저네임, scores 배열에는 유저의 게임점수를 입력받는다. // 단, 유저네임과 게임점수는 배열 인덱스상으로 서로 일치해야한다. Scanner sc = new Scanner(System.in); String [] users = new String [5]; int [] scores = new int [5]; for(int i = 0; i < users.length; i++) { ..

    JAVA 자바 웹 개발 Day5 (Code)

    50. 문장의 구조를 분석하는 방법. 프로그램을 짜기 전에 먼저 어떤 구조로 시작하면 좋을지 분석하는 습관을 들이자.. 51. 클래스를 만들어보자. 메인 메서드 바깥, 즉 1번 라인~ 20번 라인 사이에 클래스를 선언할 수 있다. Person 클래스에 인스턴스 참조형 변수 name과 인스턴스 기본형 변수 age가 선언되었고 메서드로는 "일하기"를 출력하는 work와 "밥 먹기"를 출력하는 eat가 있다. Person 클래스를 사용하려면 메인 메서드에서 객체를 생성해주어야 한다. 클래스명 참조 변수명 = new 클래스명(); 객체를 p, p1 두개 생성하였다는 점을 기억하자.. 38~39번 라인에서 p객체 안에 있는 변수의 값을 변경했다. 객체 p -> name = "피카츄", age = 100 객체 p1..

    JAVA 자바 웹 개발 Day5 (Note): 객체 지향 프로그래밍이란? 클래스와 객체

    2022/02/11 객체 지향 Object Oriented Programming (OOP) 1. 객체: 실생활, 우리 주변에 있는 모든 것을 의미함. 고유한 특성과 기능을 가지고 있다. 2. 객체 지향: 실세계의 객체를 프로그램 내에 표현하기 위해 클래스와 객체 개념을 도입한 것. 3. 특징: ① 코드의 재사용성이 높다: API 기능. 이미 제작된 소스 코드를 가져다 쓸 수 있음. ② 코드 관리가 쉽다: 상속, 다형성, 추상화, 캡슐화 //다형성에 대해 설명할 수 있어야 한다. ③ 신뢰성이 높은 프로그램 개발 가능. 코드의 재사용성이 높다는 점과 연관성이 있다. 잘 만들어져 배포된 프로그램의 소스 코드를 가져다 쓰면 검증된 부품을 이용하여 프로그램을 이용하는 것. ④ #캡슐화 encapsulation: ..

    JAVA 자바 웹 개발 Day4 (Code)

    32. for문 안에 i의 범위를 지정해줄 때 배열의 길이보다 작게 해야 한다.. x 작거나 같다( arr[j]) 였는데 이번에는 오름차 순이라 if (arr[i] < arr [j])로 작성하였다. 1-3 래퍼런스를 어떻게 사용하는지 몰라서 헷갈렸던 문제. tmp라는 배열을 선언한 다음에 arr 배열의 주소를 복사해준다. 현재 tmp 배열의 주소는 arr과 동일한 상태이다. arr 배열을 새로 만들어서 6개의 방을 만든다. len 변수를 선언하여 arr 변수의 길이를 넣어둔다. for문 안에서 tmp.length을 반복식으로 설정. (arr.length로 하지 않는 이유는 arr은 이미 새로이 6개짜리 배열로 새롭게 만들었으니까) tmp에 담아놨던 값을 새로 만든 arr에 넣어준다. arr.length ..

    JAVA 자바 웹 개발 Day4 (Note): 다차원 배열

    2022/2/10 1. 다차원 배열 ① 정방 배열: -선언 int [][] arr; 또는 int arr [][]; -객체 생성 arr = new int [행의행의 개수][열의 개수] -선언+생성 한 번에 int [][] arr = new int [행의행의 개수][열의 개수]; ex) int [][] arr= new int [5][3]; ② 가변 배열: 비정방 배열, 길이가 서로 다른 배열의 묶음. 2. new 메모리를 생성 (점유) 키워드. 개발할 때는 메모리를 효율적으로 사용해야 하고 new는 메모리를 점유하기 때문에 적게 쓰면 좋다. - 오늘은 배열에 집중하여 연습 문제를 많이 풀었다. 다차원 배열 활용 문제는 아직도 좀 헷갈리는구나. 그리고 학교에서 배웠던 알고리즘을 실제로 코드를 짜서 활용해볼 기..