JAVA

[39일차] chap6. p248~ 패키지

ggosoon 2022. 7. 14. 16:53

두개 이상의 클래스에 대해 * 로 표시

 

 

*로 나타낼 수 있는건 클래스 이름만 사용 가능하다

 


p.256 접근 제한자 

접근제한 적용대상 접근할 수 없는 클래스
public 클래스,필드,생성자,메소드 없음
protected 필드,생성자,메소드 자식 클래스가 아닌 다른 패키지에 소속된 클래스
default 클래스,필드,생성자,메소드 다른 패키지에 소속된 클래스
private 필드,생성자,메소드 모든 외부 클래스
접근제한 강화강도 
private > default> protected> public 

 

package packageA;

public class B {
	
	public String b;
	
	public B() {
		
	}
	
	public void b() {
		System.out.println("b 메소드");
	}
}





package packageB;

public class C {
	
	public String c;
	
	public C() {
		
	}
	
	public void c() {
		System.out.println("c 메소드");
	}

}

클래스 A,B,C 모두 public으로 잡고 만들어준 다음 

A에서 불러오기에 문제 없다 

 

 


B,C에서 public 지우고 디폴트상태로 만들기 

package packageA;

class B {
	
	 String b;
	
	 B() {
		
	}
	
	 void b() {
		System.out.println("b 메소드");
	}
}




package packageB;

class C {
	
	 String c;
	
	 C() {
		
	}
	
	 void c() {
		System.out.println("c 메소드");
	}

}

b는 접근 가능하지만 c로는 접근이 불가하게 된다 (즉 , 같은 패키지에서만 접근 가능하다)

class에만 public 을 주면 오류난다 

 

생성자에 public 주면 오류 사라짐

 

메소드에 주면 오류 사라짐 

 


private 접근자면 같은 패키지여도 접근할 수 없음

 


 


 

chap.7 상속 (Inheritance) +접근제어자

c2 에서 a 상속받기 

 


b 에 생성자 만들어서 TestMain에서 접근해보기 

생성자 앞에 public을 안쓰면 디폴트라는 의미

 

디폴트라서 오류가 난다

 

자동으로 만들어지는 생성자는 public으로 만들어진다 
그래서 오류가 안남 !!!


265페이지 getter와 setter메소드

클래스 내부에서는 접근제어자에대한 영향을 미치지 않는다


setSpeed에 100 입력하고 getSpeed로 받아와서 main 함수에서 리턴값 출력하기

set 100 / return 150



chap.6 연습문제 15번 로그인 만들기 


연습문제16번


문제 17번 new 안쓰고 클래스 호출하기 

static 붙여주기


문제18번 싱글톤패턴 만들기 


연습문제 19번


jsp

 

top


<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>

<style>
header{
background-color:#b0c4de;
height:50px;
line-height:50px;
color:#ffffff;
font-size:15px;
text-align:center;
}
nav{
background-color:#4682b4;
height:35px;
line-height:35px;
font-size:12px;
}
section{
background-color:#add8e6;
min-height:450px;
}
footer{
background-color:#b0c4de;
height:40px;
line-height:40px;
color:#ffffff;
font-size:13px;
text-align:center;
}



</style>
</head>
<body>
<div>
	<header> (과정평가형 정보처리 기능사)성적조회 프로그램 Ver 1.0 </header>
	<nav>
	  &emsp;<a href= form.jsp>성적입력</a>
	  &emsp;성적조회  
	 &emsp;<a href=index.jsp>홈으로</a>  
	 </nav>
index


<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
    <%@include file="top.jsp" %>
    
	<section>
	<br>
    <div  align="center">
    <font size=5><b>고등학교 성적조회 프로그램</b></font>
    </div>

	<h3>&emsp;고등학교 성적을 조회하는 프로그램을 작성한다.</h3> 
	
	     &emsp;1.학생성적정보 테이블을 생성한다. 
	<br> &emsp;2.학생적적정보 테이블에 샘플데이터를 SQL문을 이용하여 데이터를 추가생성한다.
	<br> &emsp;3.주어진 화면 디자인을 이용하여 화면을 디자인한다.
	<br> &emsp;4.업무여건에 따라 프로그램을 작성한다. 

	<br>
	</section>
	<footer>  
	  HRDKOREA  Copyright 2018 ALL Rights resources Development  Service  of  Korea  
	</footer>
</div>
</body>
</html>
form



<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
    <%@include file="top.jsp" %>
    
	<section>
	<br>
    <div  align="center">
    <font size=5><b>학생 성적 등록</b></font>
    </div>
    
      <div  align="center">
		<form name="f1" action=form_ok.jsp >
		<table  width=600  border=1 height=400>
		<tr><td width=200 align="center">학번</td>
		    <td width=400><input type=text  name=sno >  </td></tr>
		<tr><td align="center">학생이름</td>
		    <td ><input type=text  name=sname>  </td></tr>
		<tr><td align="center">국어</td>
		    <td><input type=text  name=kor size=10>  </td></tr>
		<tr><td align="center">영어</td>
		    <td><input type=text  name=eng  size=10>  </td></tr>
		<tr><td align="center">수학</td>
		    <td><input type=text  name=math  size=10>  </td></tr>
		<tr><td align="center">역사</td>
		    <td><input type=text  name=hist  size=10>  </td></tr>
		<tr>
		    <td colspan=2 align="center">
		    <input type=submit  value="저장하기">
		    <input type=reset  value="다시작성"> 
		    </td>
		</tr>
	</table>
	</form>  
	    
    </div>



	<br>
	</section>
	<footer>  
	  HRDKOREA  Copyright 2018 ALL Rights resources Development  Service  of  Korea  
	</footer>
</div>
</body>
</html>
form_ok



<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

    <% 
    String sno=request.getParameter("sno");
    String sname=request.getParameter("sname");
    String kor=request.getParameter("kor");
    String eng=request.getParameter("eng");
    String math=request.getParameter("math");
    String hist=request.getParameter("hist");
    
    %>
    <div align="center">
    학번: <%=sno%> <br>
    이름: <%=sname%> <br>
    국어: <%=kor%> <br>
    영어: <%=eng%> <br>
    수학: <%=math%> <br>
    역사: <%=hist%> <br>
    </div>

2018년 대상종목 외부평가 가이드_정보처리기능사_V1 (2).PDF
0.86MB

16페이지 try 부분만 복사

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@page import ="java.sql.*" %>
    <%
    
    String sno=request.getParameter("sno");
    String sname=request.getParameter("sname");
    String kor=request.getParameter("kor");
    String eng=request.getParameter("eng");
    String math=request.getParameter("math");
    String hist=request.getParameter("hist");
    
    
    	Class.forName("oracle.jdbc.OracleDriver");
    	Connection conn = DriverManager.getConnection
    	("jdbc:oracle:thin:@//localhost:1521/xe","system","1234");
    	
    	String sql= "insert into examtbl (sno,sname,kor,eng,math,hist)values(?,?,?,?,?,?)";
    	
    	PreparedStatement pstmt = conn.prepareStatement(sql);
    	pstmt.setString(1,sno);
    	pstmt.setString(2,sname);
    	pstmt.setString(3,kor);
    	pstmt.setString(4,eng);
    	pstmt.setString(5,math);
    	pstmt.setString(6,hist);
    	pstmt.executeUpdate();
    	
    %>
    
    <div align="center">
    학번: <%=sno%> <br>
    이름: <%=sname%> <br>
    국어: <%=kor%> <br>
    영어: <%=eng%> <br>
    수학: <%=math%> <br>
    역사: <%=hist%> <br>
    </div>
    
    <%
    pstmt.close();
	conn.close();
	
	response.sendRedirect("index.jsp");
    %>

학생성적 등록창에서 입력후 저장하기 누르면 홈 화면으로 이동하고
오라클에서 확인하면 추가된것 확인가능하다

 

<%@page import ="java.sql.*" %>
에서 sql은 패키지 뒤에 * 있는 자리는 클래스