java是面向?qū)ο蟮木幊陶Z言,一切皆為對象。本題雖然基礎(chǔ),但是特別有代表性。在做這類java編程時(shí)也應(yīng)該引入面向?qū)ο蟮乃季S。
10多年的陸良網(wǎng)站建設(shè)經(jīng)驗(yàn),針對設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。營銷型網(wǎng)站的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整陸良建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。成都創(chuàng)新互聯(lián)公司從事“陸良網(wǎng)站設(shè)計(jì)”,“陸良網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
一學(xué)生類屬性的定義:
1.擁有三個(gè)屬性,姓名,年齡和專業(yè)
姓名,是用文字進(jìn)行表述的,所以可以使用String 字符串類型
年齡,大家都說18,19歲,一般很少聽人說18.725歲,所以我們可以使用int整數(shù)類型來表示
專業(yè),也是用文字進(jìn)行表述的,所以還是用String字符串類型
2. 修飾符:java為了更好的封裝,所以屬性一般要用private進(jìn)行修飾,
但是可以用setter對屬性進(jìn)行修改,也可以用getter對屬性進(jìn)行讀取
二構(gòu)造方法的設(shè)計(jì)
為了符合java開發(fā)的規(guī)范和習(xí)慣,需要添加一個(gè)無參數(shù)的構(gòu)造器。
有參數(shù)的構(gòu)造方法,需要對屬性進(jìn)行初始化設(shè)置
三方法的設(shè)置
除開屬性的setter和getter方法外。
符合開發(fā)規(guī)范,還需要重寫toString方法。用于返回字符串
所以我們顯示(打?。┬畔r(shí),也可以直接調(diào)用toString返回的字符串,然后打印
四 參考代碼和注釋
學(xué)生類
public?class?Student?{//定義學(xué)生類
private?String?name;//屬性?姓名
private?int?age;//屬性?年齡
private?String?major;//屬性?專業(yè)
public?Student()?{//無參數(shù)的構(gòu)造法:?為了符合java開發(fā)規(guī)范和習(xí)慣,添加一個(gè)無參構(gòu)造器
}
public?Student(String?name,?int?age,?String?major)?{//有參的構(gòu)造方法,初始化屬性
this.name?=?name;
this.age?=?age;
this.major?=?major;
}
public?void?ShowInfo(){//顯示信息的方法
System.out.println(this);//打印時(shí),自動(dòng)調(diào)用toString方法,把該實(shí)例打印出來
}
public?String?toString()?{//重寫父類的toString方法,也是符合java規(guī)范的
return?"【學(xué)生】\t姓名:"+name+"\t年齡:"+age+"\t專業(yè):"+major;
}
//下面是屬性的get和set方法,getter用于獲取屬性的值,setter用于設(shè)置或修改屬性的值
public?String?getName()?{
return?name;
}
public?void?setName(String?name)?{
this.name?=?name;
}
public?int?getAge()?{
return?age;
}
public?void?setAge(int?age)?{
this.age?=?age;
}
public?String?getMajor()?{
return?major;
}
public?void?setMajor(String?major)?{
this.major?=?major;
}
}
測試類
public?class?Test?{
public?static?void?main(String[]?args)?{
Student?s1?=?new?Student("張三",?19,?"漢語語言文學(xué)");//調(diào)用有參數(shù)的構(gòu)造器,創(chuàng)建學(xué)生實(shí)例
s1.ShowInfo();//顯示信息
Student?s2?=?new?Student();//調(diào)用無參數(shù)的構(gòu)造器,創(chuàng)建學(xué)生實(shí)例
s2.setName("李四");//設(shè)置屬性的值
s2.setAge(20);
s2.setMajor("計(jì)算機(jī)科學(xué)與技術(shù)");
s2.ShowInfo();
}
}
測試結(jié)果
【學(xué)生】 姓名:張三 年齡:19 專業(yè):漢語語言文學(xué)
【學(xué)生】 姓名:李四 年齡:20 專業(yè):計(jì)算機(jī)科學(xué)與技術(shù)
五總結(jié)
通過這種基礎(chǔ)編程,主要訓(xùn)練我們面向?qū)ο蟮乃季S,以及養(yǎng)成良好的編程習(xí)慣。
import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.Container;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JToolBar;
import javax.swing.SwingConstants;
public class MainFrame extends JFrame implements ActionListener{
InsertPanel ip = null;
SelectPanel sp = null;
JPanel pframe;
JButton jb1,jb2,jb3;
JMenuItem jm11,jm21,jm22,jm23,jm31,jm32,jm41,jm42;
CardLayout clayout;
public MainFrame(String s){
super(s);
JMenuBar mb = new JMenuBar();
this.setJMenuBar(mb);
JMenu m1 = new JMenu("系統(tǒng)");
JMenu m2 = new JMenu("基本信息");
JMenu m3 = new JMenu("成績");
JMenu m4 = new JMenu("獎(jiǎng)懲");
mb.add(m1);
mb.add(m2);
mb.add(m3);
mb.add(m4);
jm11 = new JMenuItem("退出系統(tǒng)");
jm21 = new JMenuItem("輸入");
jm22 = new JMenuItem("查詢");
jm23 = new JMenuItem("更改");
jm31 = new JMenuItem("輸入成績");
jm32 = new JMenuItem("查詢成績");
jm41 = new JMenuItem("獎(jiǎng)勵(lì)");
jm42 = new JMenuItem("處分");
m1.add(jm11);
m2.add(jm21);
m2.add(jm22);
m2.add(jm23);
m3.add(jm31);
m3.add(jm32);
m4.add(jm41);
m4.add(jm42);
Icon i1 = new ImageIcon();
Icon i2 = new ImageIcon();
Icon i3 = new ImageIcon();
jb1 = new JButton(i1);
jb1.setToolTipText("輸入");
jb2 = new JButton(i2);
jb2.setToolTipText("查詢");
jb3 = new JButton(i3);
jb3.setToolTipText("退出");
JToolBar tb = new JToolBar("系統(tǒng)工具");
tb.add(jb1);
tb.add(jb2);
tb.add(jb3);
add(tb,BorderLayout.NORTH);
jm11.addActionListener(this);
jm21.addActionListener(this);
jm22.addActionListener(this);
jb1.addActionListener(this);
jb2.addActionListener(this);
jb3.addActionListener(this);
clayout = new CardLayout();
pframe = new JPanel(clayout);
add(pframe);
JPanel mainp = new JPanel(new BorderLayout());
JLabel mainl = new JLabel("學(xué)生信息管理平臺(tái)",SwingConstants.CENTER);
mainl.setFont(new Font("serif",Font.BOLD,30));
mainp.add(mainl);
pframe.add(mainp,"main");
clayout.show(pframe, "main");
}
public void actionPerformed(ActionEvent e){
if(e.getSource() == jm21 || e.getSource() == jb1){
if(ip == null){
ip= new InsertPanel();
pframe.add(ip,"insert");
}
clayout.show(pframe, "insert");
this.setTitle("輸入學(xué)生信息");
}
else if(e.getSource() == jm22 || e.getSource() == jb2){
if(sp == null){
sp= new SelectPanel();
pframe.add(sp,"select");
}
clayout.show(pframe, "select");
this.setTitle("查詢學(xué)生信息");
}
else if(e.getSource() == jm11 || e.getSource() == jb3){
System.exit(0);
}
}
}
第二個(gè):
import javax.swing.JFrame;
public class MainTest {
public static void main(String [] args){
MainFrame f = new MainFrame("學(xué)生信息管理平臺(tái)");
f.setSize(400,300);
f.setLocation(350,250);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}
}
第二個(gè):
import java.sql.Connection;
import java.sql.DriverManager;
public class MySQLConnection {
static Connection getCon(){
Connection con = null;
try{
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost/test","root","123");
}
catch(Exception e){
System.out.println("建立數(shù)據(jù)庫連接遇到異常!");
}
return con;
}
}
第四個(gè):
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
public class SelectPanel extends JPanel implements ActionListener{
JButton jb;
JTextField jt;
JTextField jt1,jt2,jt3,jt4;
public SelectPanel(){
JLabel jl = new JLabel("請輸入學(xué)號(hào):",SwingConstants.CENTER);
jt = new JTextField();
jb = new JButton("確定");
JPanel jp1 = new JPanel(new GridLayout(1,3));
jp1.add(jl);
jp1.add(jt);
jp1.add(jb);
JLabel j1,j2,j3,j4;
j1 = new JLabel("學(xué)號(hào):",SwingConstants.CENTER);
j2 = new JLabel("姓名:",SwingConstants.CENTER);
j3 = new JLabel("性別:",SwingConstants.CENTER);
j4 = new JLabel("年齡:",SwingConstants.CENTER);
jt1 = new JTextField(6);
jt1.setEditable(false);
jt2 = new JTextField(6);
jt2.setEditable(false);
jt3 = new JTextField(6);
jt3.setEditable(false);
jt4 = new JTextField(6);
jt4.setEditable(false);
JPanel jp2 = new JPanel(new BorderLayout());
JPanel jp3 = new JPanel(new GridLayout(4,2));
jp2.add(new JLabel(""),BorderLayout.NORTH);
jp3.add(j1);
jp3.add(jt1);
jp3.add(j2);
jp3.add(jt2);
jp3.add(j3);
jp3.add(jt3);
jp3.add(j4);
jp3.add(jt4);
jp2.add(jp3);
this.setLayout(new BorderLayout());
add(jp1,BorderLayout.NORTH);
add(jp2);
jb.addActionListener(this);
}
public void actionPerformed(ActionEvent e){
if(e.getSource() == jb){
String stuNo = jt.getText().trim();
Student s = new Student();
boolean b = true;
try{
b = s.selectByStuNo(stuNo);
}
catch(Exception ex){
System.out.println("查詢學(xué)生信息遇到異常!");
}
if(b){
jt1.setText(s.getStuNo());
jt2.setText(s.getName());
jt3.setText(s.getGender());
int a = s.getAge();
Integer i = new Integer(a);
jt4.setText(i.toString());
}
else{
JOptionPane.showMessageDialog(null, "無此學(xué)生!");
}
}
}
}
第五個(gè):
import javax.swing.JFrame;
public class SelectTest {
public static void main(String [] args){
JFrame f = new JFrame("查詢學(xué)生信息");
SelectPanel p = new SelectPanel();
f.add(p);
f.setSize(400,300);
f.setLocation(300,250);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}
}
第六個(gè):
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
public class Student {
String stuNo;
String name;
String gender;
int age;
public Student(){}
public Student(String stuNo,String name,String gender, int age){
this.stuNo = stuNo;
this.name = name;
this.gender = gender;
this.age = age;
}
public String getStuNo(){
return stuNo;
}
public void setStuNo(String stuNo){
this.stuNo = stuNo;
}
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
public String getGender(){
return gender;
}
public void setGender(String gender){
this.gender = gender;
}
public int getAge(){
return age;
}
public void setAge(int age){
this.age = age;
}
public boolean insertStudent(){
boolean b = true;
try{
Connection con = MySQLConnection.getCon();
Statement statement = con.createStatement();
String sql = "insert into student values('" + stuNo + "','" + name +"','" + gender + "'," + age + ")";
sql = new String(sql.getBytes("gb2312"),"ISO8859_1");
statement.executeUpdate(sql);
con.close();
}
catch(Exception e){
b = false;
System.out.println("插入數(shù)據(jù)庫遇到異常!");
}
return b;
}
public boolean selectByStuNo(String stuNo)throws Exception{
boolean b = true;
Connection con = MySQLConnection.getCon();
Statement statement = con.createStatement();
String sql = "select * from student where stuNo =" + stuNo;
ResultSet rs = statement.executeQuery(sql);
if(rs != null rs.next()){
String no = rs.getString(1);
this.setStuNo(no);
String n = rs.getString(2);
n = new String(n.getBytes("ISO8859_1"),"gb2312");
this.setName(n);
String g = rs.getString(3);
g = new String (g.getBytes("ISO8859_1"),"gb2312");
this.setGender(g);
this.setAge(rs.getInt(4));
b = true;
}
rs.close();
statement.close();
con.close();
return b;
}
}
數(shù)據(jù)庫你自己弄吧,我沒時(shí)間弄了!初學(xué)得多動(dòng)手哦
import?java.util.ArrayList;
import?java.util.Collections;
import?java.util.Comparator;
import?java.util.List;
public?class?Sort?{
public?static?void?main(String[]?args)?{
Student?p1?=?new?Student(1001,?"小明",?20);
Student?p2?=?new?Student(1002,?"小紅",?21);
Student?p3?=?new?Student(1003,?"小黑",?19);
ListStudent?list?=?new?ArrayListStudent();
list.add(p1);
list.add(p2);
list.add(p3);
Collections.sort(list,?new?ComparatorStudent()?{
/*
?*?int?compare(Student?o1,?Student?o2)?返回一個(gè)基本類型的整型,?返回負(fù)數(shù)表示:o1?小于o2,
?*?返回0?表示:o1和o2相等,?返回正數(shù)表示:o1大于o2。
?*/
public?int?compare(Student?o1,?Student?o2)?{
//?按照學(xué)生的學(xué)號(hào)進(jìn)行升序排列
if?(o1.getId()??o2.getId())?{
return?1;
}
if?(o1.getId()?==?o2.getId())?{
return?0;
}
return?-1;
}
});
write(list);
System.out.println("---------------------");
Collections.sort(list,?new?ComparatorStudent()?{
/*
?*?int?compare(Student?o1,?Student?o2)?返回一個(gè)基本類型的整型,?返回負(fù)數(shù)表示:o1?小于o2,
?*?返回0?表示:o1和o2相等,?返回正數(shù)表示:o1大于o2。
?*/
public?int?compare(Student?o1,?Student?o2)?{
//?按照學(xué)生的年齡進(jìn)行升序排列
if?(o1.getAge()??o2.getAge())?{
return?1;
}
if?(o1.getAge()?==?o2.getAge())?{
return?0;
}
return?-1;
}
});
write(list);
}
public?static?void?write(ListStudent?list)?{
for?(Student?s?:?list)?{
System.out.println(s.getId()?+?"\t"?+?s.getName()?+?"\t"
+?s.getAge());
}
}
}
public?class?Student?{
private?int?id?;
private?String?name;
private?int?age;
//構(gòu)造方法
public?Student(int?id,String?name,int?age){
this.id?=?id;
this.name?=?name;
this.age?=?age;
}
public?int?getId()?{
return?id;
}
public?void?setId(int?id)?{
this.id?=?id;
}
public?String?getName()?{
return?name;
}
public?void?setName(String?name)?{
this.name?=?name;
}
public?int?getAge()?{
return?age;
}
public?void?setAge(int?age)?{
this.age?=?age;
}
}
下面是一個(gè)存儲(chǔ)班級三十名學(xué)生基本信息的 Java 代碼示例:
import java.util.ArrayList;
public class Student {
private String name;
private int age;
private String gender;
public Student(String name, int age, String gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public String getGender() {
return gender;
}
}
public class Classroom {
private ArrayListStudent students;
public Classroom() {
this.students = new ArrayListStudent();
}
public void addStudent(Student student) {
students.add(student);
}
public ArrayListStudent getStudents() {
return students;
}
}
public class Main {
public static void main(String[] args) {
Classroom classroom = new Classroom();
// 添加 30 名學(xué)生的基本信息
classroom.addStudent(new Student("Tom", 18, "Male"));
classroom.addStudent(new Student("Alice", 19, "Female"));
// ...
// 此處省略 28 名學(xué)生的信息
// 獲取所有學(xué)生的信息
ArrayListStudent students = classroom.getStudents();
for (Student student : students) {
System.out.println("Name: " + student.getName());
System.out.println("Age: " + student.getAge());
System.out.println("Gender: " + student.getGender());
}
}
}
該代碼定義了兩個(gè)類:Student 類表示一個(gè)學(xué)生,包含了學(xué)生的姓名、年齡和性別等信息;Classroom 類表示一個(gè)班級,包含了一個(gè)學(xué)生的列表,并提供了添加學(xué)生和獲取學(xué)生列表的方法。
在 Main 類的 main 方法中,我們首先實(shí)例化一個(gè) Classroom 對象,然后依次添加 30 名學(xué)生的信息。最后,我們調(diào)用 getStudents 方法獲取所
輸出學(xué)生基本信息思路如下:
1:需要知道學(xué)生基本信息對象中有哪些屬性(字段),需要輸出哪些屬性?
2:怎么獲取到學(xué)生信息?
2.1:是從數(shù)據(jù)庫中獲???如果是從數(shù)據(jù)庫獲取,需要根據(jù)什么條件查詢數(shù)據(jù)庫?
2.2:如果直接是從List中獲取的話,那就可以直接使用遍歷list或者list.get(index)等手段獲取
3:輸出,是輸出在哪里?
3.1:如果是輸出在控制臺(tái)上,那么直接就System.out.println
3.2:如果是輸出到頁面上,那么就準(zhǔn)備對象
3.3:如果是接口輸出的話,需要封裝成接口返回對象
3.4:如果是輸出到文件中,那么需要通過流寫入到指定文件中