面向物件學習第四節
1.編寫一個學生類,提供name、age、gender、phone、address、email成員變數,且為每個成員變數提供setter、getter方法。為學生提供預設的構造器和帶所有成員變數的構造器。為學生提供方法,用於描繪吃、喝、玩、睡等行為。
2.利用第1題定義的Student類,定義一個Student[]陣列儲存多個Student物件作為通訊錄資料。程式可通過name、email、address查詢,如果找不到資料,則進行友好的提示。
3.定義普通人、老師、班主任、學生、學校這些類,提供適當的成員變數、方法用於描述其內部資料和行為特徵,並提供主類使之執行。要求有良好的封裝性,將不同類放在不同包下面,增加文件註釋,生成API文件。/* * 需求:利用之前定義的Student類,定義一個Student[]陣列儲存多個student物件作為通訊錄資料 * 程式可通過name、email、address查詢,如果找不到資料,則進行友好的提示 * */ import java.util.Scanner; class Student{ private String name; private int age; private String gender; private long phone; private String address; private String email; //建立沒有引數的構造器 public Student(){ } //建立帶有所有成員變數引數的構造器 public Student(String name,int age,String gender,long phone,String address,String email){ this.name=name; this.age=age; this.gender=gender; this.phone=phone; this.address=address; this.email=email; } public void setName(String name){ this.name=name; } public String getName(){ return this.name; } public void setAge(int age){ this.age=age; } public int getAge(){ return this.age; } public void setGender(String gender){ this.gender=gender; } public String getGender(){ return this.gender; } public void setPhone(long Phone){ this.phone=phone; } public long getPhone(){ return this.phone; } public void setAdress(String adress){ this.address=adress; } public String getAdress(){ return this.address; } public void setEmail(String email){ this.email=email; } public String getEmail(){ return this.email; } public void Play(){ System.out.println("學生玩遊戲"); } public void Eat(){ System.out.println("學生吃東西"); } public void Drink(){ System.out.println("學生喝東西"); } } class Manger{ private Student[] a; /*public Manger(Student[] a){ this.a=a; }*/ public void SeachName(Student[] stu2){ String str="張三"; for(int i=0;i<stu2.length;i++){ boolean b1=false; if(stu2[i].getName().equals(str)){ System.out.println("根據學生姓名查詢的資訊為:"+stu2[i].getName()+","+stu2[i].getAge()); b1=true; } if(i==stu2.length&&b1==false){ System.out.println("查詢結果不存在,請稍後查詢"); } } } public void SeachAge(Student[] stu2){ for(int i=0;i<stu2.length;i++){ boolean b1=false; if(stu2[i].getAge()==12){ System.out.println("根據學生年齡查詢的資訊為:"+stu2[i].getName()+","+stu2[i].getAge()); b1=true; } if(i==stu2.length&&b1==false){ System.out.println("查詢結果不存在,請稍後查詢"); } } } } public class Test1 { public static void main(String[] args){ Student stu1=new Student(); stu1.setName("張三"); stu1.setAge(12); stu1.setGender("fafas"); stu1.setAdress("fdasfa"); stu1.setPhone(1233432542); stu1.setEmail("
[email protected]"); System.out.println("學生姓名:"+stu1.getName()); System.out.println("學生年齡:"+stu1.getAge()); System.out.println("學生的地址:"+stu1.getAdress()); stu1.Play(); stu1.Eat(); stu1.Drink(); Student[] stu2=new Student[3]; Scanner in; in=new Scanner(System.in); for(int i=0;i<stu2.length;i++){ //臨時的stuI一定要在for裡面定義,否則StuI賦值給stu2[i]之後 //因為指向相同,stu2[i]會不斷的重寫,最後出現所有的stu2值全部一樣; Student StuI=new Student(); //給成員變數初始化 System.out.println("請輸入第"+(i+1)+"個學生資訊"); System.out.println("姓名:"); StuI.setName(in.next()); StuI.setAge(Integer.valueOf(in.next())); StuI.setPhone(Integer.valueOf(in.next())); stu2[i]=StuI; } for(int i=0;i<stu2.length;i++){ System.out.println(stu2[i].getName()); } /* * 下面的程式碼因為值為null,所以出現空指標異常 * */ /*stu2[0].setName("李四"); stu2[0].setAge(12); stu2[0].setAdress("asd"); stu2[0].setPhone(s12432523); stu2[0].setEmail("dasdasdsad"); stu2[1].setName("張三"); stu2[1].setAge(15); stu2[1].setAdress("dasfa"); stu2[1].setPhone(124432543); stu2[1].setEmail("dasfasgsg"); stu2[2].setName("王五"); stu2[2].setAge(18); stu2[2].setAdress("asfga"); stu2[2].setPhone(1241232523); stu2[2].setEmail("asdfasfasfasf");*/ Manger m=new Manger(); m.SeachAge(stu2); m.SeachName(stu2); //使用帶所有引數的構造器 Student stu3=new Student("王五",15,"fafgas",124125,"dasfaga","124151521"); System.out.println("學生姓名:"+stu3.getName()+"學生的年齡為:"+stu3.getAge()+"學生的電話號碼為:"+stu3.getPhone()); } }
1)首先定義Person類,定義其成員變數,定義方法得到成員變數的值
public class Person {
private String name;
public String getName(){
return this.name;
}
public void setName(String name){
this.name=name;
}
}
2)定義Student類,繼承父類Person,呼叫得到成員變數name的函式3)定義Teacher類,繼承父類Person,呼叫獲得成員變數name的方法public class Student extends Person{ Student(String name){ //其中this可以省略 this.setName(name); } public void study(School s){ System.out.println("學生"+this.getName()+"在"+s.getSchoolName()+"上課"); } }
public class Teacher extends Person {
Teacher(){
}
Teacher(String name){
setName(name);
}
//老師給某同學佈置作業
public void setHomework(Student s){
System.out.println(this.getName()+"老師給學生"+s.getName()+"佈置作業");
}
}
3)定義班主任類MainTeacher類,繼承Teacher類。public class MainTeacher extends Teacher {
MainTeacher(String name){
setName(name);
}
public void joinCompetition(Student s,School sc){
//班主任要求某學生參加某學校的什麼比賽
System.out.println(this.getName()+"班主任要求學生"+s.getName()+"參加"+sc.getSchoolName()+"的"+sc.getCompetition());
}
}
4)定義學校類School,建立得到學校類中的方法學校的名字schoolName(),獲得參加什麼比賽,比賽名字的方法getCompetition()public class School {
private String schoolName;
private String competition;
School(String name){
setSchoolName(name);
}
public String getCompetition(){
return competition;
}
public void setCompetition(String competition){
this.competition=competition;
}
public void setSchoolName(String name){
this.schoolName=name;
}
public String getSchoolName(){
return schoolName;
}
}
相關推薦
面向物件學習第四節
1.編寫一個學生類,提供name、age、gender、phone、address、email成員變數,且為每個成員變數提供setter、getter方法。為學生提供預設的構造器和帶所有成員變數的構造器。為學生提供方法,用於描繪吃、喝、玩、睡等行為。 2.利用第1題定義的S
python學習第四節 叠代器 生成器 面向過程編程
break 對象 end 面向過程編程 捕捉 捕捉異常 就會 python學習 因此 1:什麽是叠代 可以直接作用於for循環的對象統稱為可叠代對象(Iterable)。 可以被next()函數調用並不斷返回下一個值的對象稱為叠代器(Iterator
Linux學習第四節課-文件管理基本概念及相關部分指令
sys 工作 mic ros ech num adding windows系統 bre Linux學習第四節課------------------------------------------
python面向物件學習(四)繼承
目錄 1. 單繼承 1.1 繼承的概念、語法和特點 1.2 方法的重寫 1.3 父類的 私有屬性 和 私有方法 2. 多繼承 2.1 多繼承的使用注意事項 2.2 新式類與舊式(經典)類 1. 單繼承 1.1 繼承的概念、
javascript面向物件系列第四篇——OOP中的常見概念
前面的話 面向物件描述了一種程式碼的組織結構形式——一種在軟體中對真實世界中問題領域的建模方法。本文將從理論層面,介紹javascript面向物件程式程式(OOP)中一些常見的概念 物件 所謂物件,本質上就是指事物(包括人和物)在程式設計語言中的表現形式。這裡的事物可以是任何東西(如某個客觀
BurpSuite學習第四節--Spider
一.Spider的介紹 Burp Spider 是一個對映 web 應用程式的工具。它使用多種智慧技術對一個應用程式的內容和功能進行全面的清查。 通過跟蹤 HTML 和 JavaScript 以及提交的表單中的超連結來爬行目標應用程式。 結果會在站點地圖中以樹和表的形式顯示出來,提供了一個清楚並非常詳細
JAVAscript學習筆記 js句柄監聽事件 第四節 (原創) 參考js使用表
必須 htm -c eve property blog uncaught event add <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8">
學習HTML 第四節.插入圖像
htm 分享 info pan tro meta 標題 log doctype 學習HTML 第四節.插入圖像 全是文字的網頁太枯燥了吧,我們來搞個圖片上去! <!DOCTYPE html><html><head><meta cha
Git系統從0到1的完整學習歷程(第四節(3) Git分支管理)
主要跟著https://gitee.com/progit/index.html來學習的,知識點來自這裡,新增自己的理解和標記。 檢視分支 git branch 命令不僅僅能建立和刪除分支,如果不加任何引數,它會給出當前所有分支的清單: $ git branch is
Git系統從0到1的完整學習歷程(第四節(2) Git分支操作)
主要跟著https://gitee.com/progit/index.html來學習的,知識點來自這裡,新增自己的理解和標記。 分支的新建與合併 現在讓我們來看一個簡單的分支與合併的例子,實際工作中大體也會用到這樣的工作流程: 開發某個網站。 為實現某個新的需求,建立一個
Git系統從0到1的完整學習歷程(第四節(1) Git分支原理學習)
分支學習 https://gitee.com/progit/3-Git-%E5%88%86%E6%94%AF.html+自己的理解 理解分支的概念並熟練運用後,你才會意識到為什麼 Git 是一個如此強大而獨特的工具,並從此真正改變你的開發方式。
php學習筆記:第四節--php中的運算子和流程控制
PHP的運算子、流程控制和其他語言的運算子一樣,沒什麼特別的,這裡不再累贅。 特別的運算子: .= $a.=$b
Spring學習(穀粒學院spring4課程)第四節 基於註解配置bean
元件掃描(component scanning): Spring 能夠從 classpath 下自動掃描, 偵測和例項化具有特定註解的元件. 特定元件包括: @Component: 基本註解, 標識了一個受 Spring 管理的元件 @Respository: 標識
學校學習ios教程筆記,第四節swift中可變陣列和不可變陣列以及元組的概念與操作
// // main.swift // Swift第四節 // // Created by lanou on 16/10/24. // Copyright (c) 2016年 lanou. A
Spring入門學習(自動裝配) 第四節
Spring入門學習 第四節 自動裝配 自動裝配 分別建立三個類Address.java,Car.java,Person.java 其中Perosn類包含有Address和Car的屬性package com.fafa.spring.au
第四節:詳細講解Java中的類和麵向物件思想
前言大家好,我是 Vic,今天給大家帶來詳細講解Java中的類和麵向物件思想的概述,希望你們喜歡類和麵向物件在Java中怎樣理解物件,建立物件和引用;什麼是引用,對於基礎學習的同學,要深入瞭解引用。示例:String str = new String(); ;其中str為引用
Linux第四節課學習筆記
關鍵詞搜索 刪除文件 技術分享 atime 操作 linux 復制文件 nbsp alt touch命令可修改文件atime和mtime,不能修改ctime。可用於修改文件後將修改時間改回之前修改時間。 mkdir命令用於創建空白的目錄,格式為“mkdir [
Linux學習第四章
linux5-1-1查看系統負載命令命令 w或命令uptimeload average :a(1分鐘內系統的平均負載 ),b(5分鐘內),c(15分鐘內)a:一分鐘內有多少個進程使用cpucat /proc/cpuinfo 顯示的processor的值就是cpu核數a>核數 負載偏高5-1-2vmsta
JAVA學習第四十五課 — 其它對象API(一)System、Runtime、Math類
大整數 協調 1.5 tint ava 字符串 垃圾 void lol 一、System類 1. static long currentTimeMillis() 返回以毫秒為單位的當前時間。 實際上:當前時間與協調世界時 1970 年 1 月 1 日午夜之間的時間差(
(筆記)斯坦福機器學習第四講--牛頓法
ron 並不會 initial ant 結果 c函數 情況 對數 width 本講內容 1. Newton‘s method(牛頓法) 2. Exponential Family(指數簇) 3. Generalized Linear Models(GLMs)(廣義線性模型)