본문 바로가기

JAVA 줘? 잡아줘!54

[Java]Day049 : DB + JAVA 연결해서 저장하고 검색하기 [select] 외워야할 것!!! ( 처음 보는 거 .... 너무 많다.... ㅠㅠ ) + Connection + PreparedStatement + ResultSet + executeUpdate() + executeQuery() + while(rs.next()) + catch(Exception e) { e.printStackTrace( ); } Db db = Db.getDb(); Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; String sql = "select * from score"; List list = new ArrayList();// 검색된 데이터를 가변배열에 담으시오. try { conn = db.getConnecti.. 2023. 10. 16.
[Java]Day048 : Java 와 Oracle 연결 01 Java + Oracle = JDBC Oracle 명령어 (1) 계정생성 1) DBMS 란 2) 관계형 DB란 3) DDL - Create / Drop / Alter / Truncate DCL - Grant / Revoke DML - ELECT, INSERT, UPDATE, DELETE TCL - BEGIN, COMMIT, ROLLBACK ----------------------------------------------------------------------------------------------------------------------------------------------------------------- DBMS(데이터베이스 관리 시스템)은 데이터베이스를 생성하고 관리하며 사용자가 데.. 2023. 10. 16.
[Java]Day047 : 추상메서드 Abstract / 인터페이스 Interface 1) 인터페이스로 추상메서드들 목차를 만든다 2) 클래스를 생성하여 인터페이스를 Implements 받고 2)-1 ; Abstract Method 를 Override 해서 구현부를 생성해준다. 추상 메서드 ( Abstract Method) : 선언부만 있고 구현부가 없는 메서드 class / interface 에서 생성 가능 --- [인터페이스] --- - 모든 메서드가 추상 메서드다 - 상수(final : 변하지 않는 값)와 추상메서드로만 멤버로 가질 수 있고 다른 어떤 요소도 사용불가 - 키워드 : interface로 선언한다. - 모든 메서드가 추상 메서드이기 때문에 public abstract 생략 가능하다. - public static final 생략가능하다 - 인터페이스의 객체 생성할 수 없다.. 2023. 10. 10.
[Java]Day046 : 다형성 (Polymorphism) 다형성 (Polymorphism) - 사전적 의미 : 여러가지 형태를 취할 수 있는 능력 - 프로그램적 의미 : 하나의 참조변수로 여러타입의 객체를 참조할 수 있는 것 - 즉, 조상타입의 참조변수로 자손타입의 객체를 다룰 수 있는 것 이러면 무슨 말인지 모르겠쥬? 킹치만 우린 한번 써봤는 걸 List list = new ArrayList(); 요로케 써봤음. 아마 저저저저번 쯤? 아마도? 이게 모냐면, List 안에 구현한 인터페이스인 ArrayList 가 있는 것인디, 그럴 때 형 타입으로는 상위 개념을 지정해도 된다. 「 = 」에서는 항상 왼쪽이 높은 쪽, 부모쪽. 오른쪽에 있는 값을 왼쪽에 대입한다고 생각한다면 오른쪽이 더 낮은 자손쪽이 되어야 한다. 지금 쓰는 부모 자손은 상속에서 쓰는 단어로 여.. 2023. 10. 2.
[Java]Day045 : 상속 (Inheritance) □ 상속 (inheritance) 기존의 클래스를 재사용하여, 새로운 클래스를 작성하는 것 부모 클래스에 만들어진 멤버변수, 메서드를 자식 클래스가 돌려받음 - 멤버의 중복 작성이 불필요하다. 상속받음으로 클래스의 재사용성과 확장이 용이하고, 새로운 클래스의 작성 속도가 빠르다. 단, 생성자와 초기화 블럭은 상속되지 않는다 자손 클래스의 멤버 개수는 조산 클래스보다 항상 같거나 많다. 상속 받고자 하는 클래스의 이름을 extends 와 함께 써 주기만 하면 된다. package Java02_Intermediate; class Trainee { String name; int age; public void setTrainee(String name, int age) { this.name = name; this.. 2023. 9. 26.
[Java]Day044 : 컬렉션프레임워크 - List 안에 Map 넣기 public class StudentMethod { Scanner sc = new Scanner(System.in); List list = new ArrayList(); // 가변 ; 개수가없다. // 입력 public void insertView() { Map map = new HashMap(); System.out.print("번호 이름 국어 영어 수학 입력 >>>"); int num = sc.nextInt(); String name = sc.next(); int kor = sc.nextInt(); int eng = sc.nextInt(); int mat = sc.nextInt(); map.put("num", num); map.put("name", name); map.put("kor", kor); m.. 2023. 9. 26.
[Java]Day043 : 컬렉션프레임워크의 활용 - Map 안에 List 넣기 // Map에 List 저장 HashMap map = new HashMap(); ArrayList list= new ArrayList(); SampleDTO dto1 = new SampleDTO(); dto1.setName("java01"); dto1.setAge(100); dto1.setJob("web"); dto1.setRank(1); SampleDTO dto2 = new SampleDTO(); dto2.setName("java02"); dto2.setAge(200); dto2.setJob("design"); dto2.setRank(1); SampleDTO dto3 = new SampleDTO(); dto3.setName("java03"); dto3.setAge(300); dto3.setJob("fr.. 2023. 9. 26.
[Java]Day042 : 컬렉션 프레임워크 ▣컬렉션 프레임워크 □ 컬렉션이란? 객체들의 저장소 = 컬렉션의 요소는 오직 객체만 가능하다. = 참조형만 사용가능하다 = 기본형은 사용불가 객체의 개수에 따라서 크기가 자동으로 조절이 됩니다. 객체의 삽입, 삭제에 따른 객체의 위치가 자동으로 이동이 된다. 고정 크기의 배열을 다루는 어려움이 해소가 되었다. ==> 가변배열 다양한 객체들의 삽입, 삭제, 검색 등의 작업을 쉽게 처리가 가능하게 되었다. 컬렉션을 위한 자바 인터페이스와 클래스 □ 제네릭의란? 특정 타입만 다루지 않고 여러 종류의 타입(객체)를 다룰 수 있도록 일반화된 타입 매개변수 public void 메서드 (매개변수){ , , 인터페이스 ; 선언부(method)만 있는거다. 구현부가 없다. 따라서 따로 구현을 해주어야 한다. : , ,.. 2023. 9. 19.
[Java]Day041 : 문제의 [ static ] .... 그리고 JVM Memory static 을 몰랐던 시절로 돌아가고 싶다.... 그 땐... 좋았던 그 때로... ... ... 아련하게 생각나는 한 마디... ... .. . static 메서드( ) 안에서는 인스턴스변수,field 사용 불가...... ... .. . ? 자 정신차리고! 문제가 있었던 3일전 과거로 돌아가본다 이렇게 쓰니까 안되더라? 왜? 라고하니까 강사님께서 말하시기를 : 클래스 시작하면 main 먼저 가는데 그럼 main 문 밖에 있는 건 언제 시작 될지 몰라서 선언이 안된다고 한다. 그럴 수 있지... 하긴 메서드면 main 들어가자마자 호출하면 되는 건데 말 이다... 찝찝하지만 다음...! non-static 에서 선언한 변수는 static에서 쓸 수 없다. public class Java012 { St.. 2023. 9. 16.
[Java]Day040 : 접근제한자에 대해 알아보겠다. 접근 제한자(Access Modifier)는 객체 지향 프로그래밍(OOP)에서 클래스의 멤버(필드, 메서드, 생성자)에 대한 접근 권한을 제어하는 데 사용되는 키워드입니다. 접근 제한자는 다른 클래스 또는 외부 코드로부터 클래스의 멤버에 대한 접근을 제한하거나 허용하는 역할입니다. 접근 제한자를 사용하여 클래스의 멤버에 대한 접근을 조절함으로써 캡슐화를 구현하고, 객체의 데이터를 보호하며, 안전한 코드를 작성할 수 있습니다. 객체 지향 프로그래밍에서는 정보 은닉과 관련된 중요한 개념으로, 접근 제한자를 적절하게 사용하여 클래스를 설계하고 구현하는 것이 중요 ※ 접근제한자의 종류 : public < protected < default < private (보안 젤 쎔) + public: 가장 낮은 보안 수준.. 2023. 9. 16.
[Java]Day039 : 클래스 / 객체의 값 초기화 (저장) 및 출력 방법 + toString // 01 // 객체생성후 멤버변수에 직접 접근해서 값을 저장하는 방법 class Student{ public Student() { } Student stu1 = new Student(); stu1.num = 1; stu1.name = "홍길동"; stu1.kor = 100; stu1.eng = 100; stu1.mat = 100; stu1.totAvgCalc(); stu1.rank(); } // 02 // 생성자를 호출하여 멤버변수에 값을 저장하는 방법 public Student(int num, String name, int kor, int eng, int mat) { this.num = num; this.name = name; this.kor = kor; this.eng = eng; this.mat .. 2023. 9. 16.
[Java]Day038 : 클래스 (Class) 의 구성 : 멤버변수(Field), 생성자 (Constructor), 메서드(Method) Class 란? 자바언어는 객체지향 프로그래밍 (OOP : Object Oriented programming) 언어이이다. 제품(객체)을 만들기 위한 설계도. 또는 틀 클래스는 객체를 생성하는데 사용된다. 객체란? 설계도 대로 만들어진 제품 클래스에서 정의된 내용대로 메모리에 생성된 것을 말한다 ==> 인스턴스 (Instance) 객체는 속성(변수)과 기능(메서드)으로 이루어져 있다. 클래스로부터 객체를 만드는 과정을 인스턴스화 라고 부른다 요런 느낌 아닐까...? ※ 클래스 (Class) 의 구성 : 멤버변수(Field), 생성자 (Constructor), 메서드(Method) 멤버변수 : 객체의 데이터가 저장되는 곳 생성자 : 객체 생성시 초기화 역할 담당 메서드 : 객체의 동작에 해당되는 실행 블럭.. 2023. 9. 16.
[Java]Day037 : 매개변수, 객체배열 그 어지러움 사이 어딘가 자 헷갈린다 2중 for문 부터 머리아픈데, 2중 배열도 어려웠고, 객체는 또 뭔지 근데 그 둘이 끔찍한 혼종이란다. 객체배열 자! 일반 변수 선언 부터 보자. 하나씩 변수 선언을 하면 아래처럼 각가 adress를 차지하고 다시 heap 영역에 각각 저장되어 있겠지? (참조형은) 그 다음은 클래스안에서 전역변수 처럼 쓰이는 멤버변수 java 라는 class 에서 선언한 변수들로 java class를 객체화 하면 쟤네는 떨어지지 않는 한 덩어리다 뭉쳐서 주소에 저장되고 그 주소에서 각각의 heap 에 값이 저장되어 있겠지.....만! 쟤네는 한 덩어리다 중간에 kor 은 쓰고 eng 를 안 쓰더라도 쟤네는 뭉치다. 묶음 이다. 뗄 수 없다!! 이산가족 금지 그 다음은 객체들을 여러번 쓸 때 필요한 객체배열.. 2023. 9. 13.
[Java]Day036 : Class 란? 객체(Object)란? Instance란? ※ Class 란? - 자바언어는 객체지향 프로그래밍 (OOP : Object Oriented programming) 언어이다. - 제품(객체)을 만들기 위한 설계도. 또는 틀 - 클래스는 객체를 생성하는데 사용된다. - 클래스는 실제로 메모리에 할당되지 않으며, 객체를 생성하기 위한 일종의 템플릿 ※ 객체란? - 설계도 대로 만들어진 제품 - 클래스에서 정의된 내용대로 메모리에 생성된 것을 말한다 ==> 인스턴스 (Instance) - 클래스로부터 객체를 만드는 과정을 인스턴스화 라고 부른다 - 객체는 속성(변수)과 기능(메서드)으로 이루어져 있다. --------------------------------------------------------------------------------------.. 2023. 9. 12.
[Java]Day035 : 다중 매개변수를 가진 Method static void swap(int a, int b) { int tmp = a; a = b; b = tmp; } public static void main(String[] args) { int a = 100; int b = 200; System.out.println("a 값 = "+a+", b 값 = "+ b); swap(a,b); //System.out.println(swap(a,b)); } swap( ) method 를 만들고 main( ) 에서 swap( )를 호출 하면 호출 할 때는 swap(100,200) // swap(a,b) 를 넣어 호출 하는데 swap( ) 을 다 돌고 나면 값이 ....어떻게 나오냐? 매개변수는 여러개일 수 있지만, 함수의 결과값 (return) 은 여러개를 받을 수 .. 2023. 9. 7.
[Java]Day034 : Method 쓰는 법 (매우 기초) public static void main(String[] args) { int[] arr; arr = new int[] {80,90,100}; int sum=0; for(int i=0; i 2023. 9. 7.
[Java]Day033 : "Method" 너는 누구인가? 메서드? method가 뭔가? main ( ) 안에 다 코딩하면 길어지기도 하고.... 일부분만 수정 하려고 하는데 , 그게 어디더라? 혹은 전부 하나하나 갈아야 한다거나... 그래서 부분을 좀 나눈다고 생각하면 될것이다 작업이 용이하고, 다른데서또 쓰기 편하고, 뭐 그래서 위의 사진에 별 다섯개인것이다. 가장 간단한 형태의 Method를 위와 같이 선언해보았다. public static void main(String[] args) { 실행문; retrun 값; } static 을 붙히는 이유가 무엇이라고 햇어? 이 설계도를 객체로 만들어야 나중에 사용할 수 있는데... static 메서드는 객체생성 없이 사용할 수 있는 메서드 만약 static이 없으면 Java003 객체를 생성해야 사용할 수 있다. publi.. 2023. 9. 7.
[Java]Day032 : 등수 매기기 초기화된 (값이 입력된) 배열이 있을 때, 그 값들 끼리 순위를 매기는 알고리thm 을 보자 아래 (예제)를 보면 점수가 들어있는 5칸 짜리 배열이 있고, 크기가 같은 새 배열 rank[] 을 하나 생성한다. 초기화 안 했을 시, 기본 배열의 초기값은 전부 {0, 0, 0, 0, 0} 이다 그리고 [ i ] 와 [ j ] 를 2중 for 문으로 돌려서 score[ i ] < score [ j ] 각각 전부 비교를 한 다음에, 값이 작을 경우 같은 주소의 rank[ i ]에 값을 증가시킨다. 그러면 같은 값이 있지 않으면 0 1 2 3 각각 등수가 rank [] 에 저장될 것이고 보통 등수는 1 2, 3, 4 으로 표기하기때문에 출력할 때는 rank 에 있는 값에 '1'을 더하여 출력하면 순위가 된다. /.. 2023. 9. 6.
Try_003 : [스스로]배열의 행과열을 뒤집기/ 반전 public class TransposeArray { public static void main(String[] args) { int[][] originalArray = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} }; // originalArray의 행과 열을 반전시키는 새로운 배열 생성 int numRows = originalArray.length; int numCols = originalArray[0].length; int[][] transposedArray = new int[numCols][numRows]; // 값을 반전시켜서 새로운 배열에 복사 for (int i = 0; i < numRows; i++) { for (int j = 0; j < numCols; j++) { tra.. 2023. 9. 5.
[Java]Day031 : for 문 의 차원 뒤바꾸기 일반적인 for문 으로 코딩하면 이런 식으로 값이 쓰여지게 됩니다. for(int i=0; i 2023. 9. 5.