|
一.繼承 二.方法的重寫 三.繼承后的代碼執(zhí)行順序 四.supper關(guān)鍵字 五.final關(guān)鍵字 六.多態(tài) 七.例子 1.請(qǐng)?jiān)O(shè)計(jì)多個(gè)類,程序員,醫(yī)生,演說家,歌手四個(gè)類 2.人物采訪: 加一個(gè)新的采訪職業(yè)。老師 package com.demo1106;
/**
* 職業(yè)案例
* @author allen
*
*/
public class Profession {
public static void main(String[] args) {
Programmer p = new Programmer();
p.coding();
}
}
class Person {
//姓名,年齡,性別,職業(yè)
String name;
int age;
String sex;
String profession;
final String HELLO = "你好";//常量,一旦聲明就必須賦值,并且不能被修改
static{
System.out.println("我是父類靜態(tài)");
}
public Person() {//子類繼承父類,構(gòu)造子類必先構(gòu)造父類
System.out.println("我是父類構(gòu)造方法");
}
public void eat(){
System.out.println("吃米飯");
}
public void sleep(){
System.out.println("睡覺八小時(shí)");
}
public void intrduce(){
System.out.println("我叫" name);
}
}
class Programmer extends Person{
static{
System.out.println("我是子類靜態(tài)");
}
public Programmer() {
super();
System.out.println("我是子類構(gòu)造方法");
}
public void coding(){
super.intrduce();
System.out.println("我賺錢的方法時(shí):我會(huì)編碼");
}
@Override//這個(gè)叫注解 此處的含義是告訴java這個(gè)方法是重寫父類的方法,他有檢查功能
public void sleep(){
System.out.println("我要加班,睡覺4個(gè)小時(shí)");
}
}
class Doctor extends Person{
String level;//級(jí)別
public void operation(){
System.out.println("我賺錢的方式:做外科手術(shù)");
}
@Override
public void eat(){
System.out.println("我吃面,還不用面條鮮");
}
}
? package com.demo1106;
/**
* 任務(wù)采訪案例
*/
public class Interview {
public static void main(String[] args) {
Compere cp = new Compere();
// People p = new Actor("芙蓉姐姐", "網(wǎng)紅", "海文公司");
// 父類的類型指向子類的對(duì)象
People p = new Doctorer("某某某", "主任醫(yī)師", "長沙湘雅附二");
cp.doProgram(p);
}
}
class Compere{
String name;
//主持節(jié)目
public void doProgram(People p){
//1234
System.out.println("我是主持人:" name ",感謝CCTV,所有TV");
p.introduce();
p.makeMoney();
System.out.println("我是主持人,感謝收看本級(jí),下期再見");
}
// public void doProgramToActor(Actor a){
// //1234
// System.out.println("我是主持人:" name ",感謝CCTV,所有TV");
// a.intrduce();
// a.makeMoney();
// System.out.println("我是主持人,感謝收看本級(jí),下期再見");
// }
//
// public void doProgramToLawyer(){
// //1234
// }
}
//第一次優(yōu)化
//將被采訪人的自己的行為規(guī)范到被采訪人類中
//將該類作為形參傳遞給主持人的主持節(jié)目方法
class Doctorer extends People{
//String name;來源于父類
String level;//自己值留下特征
//String company;//就職單位
@Override
public void introduce(){
System.out.println("我是:" name ",我的級(jí)別是:" level ",我就職于:" company);
}
public Doctorer(String name,String level,String company) {
this.name = name;
this.level = level;
this.company = company;
}
@Override
public void makeMoney(){
System.out.println("我賺錢的方式是做手術(shù)做一半要紅包");
}
}
class Actor extends People{
// private String name;
private String type;
// private String company;
public Actor(String name, String type, String company) {
this.name = name;
this.type = type;
this.company = company;
}
@Override
public void introduce(){
System.out.println("我是:" name ",我就職于:" company);
}
@Override
public void makeMoney(){
System.out.println("我賺錢的方式是潛規(guī)則上位");
}
}
//第二次優(yōu)化:
//1可以將所有被采訪者抽取他們的共性到一個(gè)父類中。
//2被采訪者可以繼承這個(gè)父類并且重寫父類中的方法
//3可以將主持人中的主持方法參數(shù)由原來的被采訪者改為他們的父類
class People{
String name;
String company;
public void introduce(){
}
public void makeMoney(){
}
}
package com.demo1106;
//繼承的語法案例
public class Demo{
public static void main(String[] args) {
Children c = new Children();
c.name = "張三瘋";
c.eat();
}
}
class Father {
String name;
int age;
String sex;
public void eat(){
System.out.println("我喜歡吃米飯");
}
public void run(){
System.out.println("每分鐘跑200米");
}
}
class Children extends Father{
String characate;
public void play(){
System.out.println("我們喜歡擼啊擼");
}
}
/*
* 1.請(qǐng)?jiān)O(shè)計(jì)多個(gè)類,程序員,醫(yī)生,演說家,歌手四個(gè)類
設(shè)計(jì)相關(guān)屬性和職業(yè)行為,并且看怎么優(yōu)化設(shè)計(jì)
共性的屬性有:姓名,年齡,性別,職業(yè)
共性的方法有:自我介紹,吃飯,睡覺
特性的方法有:各自如何賺錢
特有的屬性:各自特有的屬性
*
*/
package com.class1106;
public class Class01 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Person pg=new Programmer();
pg.introduce();
pg.eat();
pg.sleep();
pg.getmoney();
}
}
class Person{
String name;
int age;
String sex;
String profession;
public void introduce(){
System.out.println("我是" name ",性別是" sex ",今年" age "歲" ",職業(yè)是" profession);
}
public void eat(){
System.out.println("我會(huì)吃飯");
}
public void sleep(){
System.out.println("我還會(huì)睡覺");
}
public void getmoney()
{
}
}
class Programmer extends Person{
String thought;
public void getmoney()
{
System.out.println("我通過寫代碼賺錢");
}
}
class Doctor extends Person{
String cloth;
public void getmoney(){
System.out.println("我通過給人治病賺錢");
}
}
class Speaker extends Person{
String eloquence;
public void getmoney(){
System.out.println("我通過演講賺錢");
}
}
class Singer extends Person{
String sound;
public void getmoney()
{
System.out.println("我通過唱歌賺錢");
}
}
/*
* 2.人物采訪:
要求:主持人主持一檔節(jié)目,叫做人物訪談,可以采訪各種職業(yè)的人
采訪過程:
1.主持人先報(bào)廣告贊助商
2.被采訪人自我介紹
3.被采訪人介紹自己的賺錢方式
4.主持人說下集預(yù)告
設(shè)計(jì)程序,要求主持人可以采訪任何類型的職業(yè)人,采訪流程不變。
加一個(gè)新的采訪職業(yè)。老師
*/
package com.class1106;
public class Class02 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Host h=new Host();
People p1=new Doctor1("華佗",100,"醫(yī)生","院長");
h.interview(p1);
People p2=new Teacher1("曹操",111,"老師","三國軍事學(xué)院");
h.interview(p2);
}
}
class Host{
String name="陳魯豫";
public void interview(People p)
{
System.out.println("我是主持人" name ",本節(jié)目由五糧液冠名播出");
p.introduce1();
p.makemoney();
System.out.println("本期節(jié)目到這里就結(jié)束了,感謝cctv,我們下期再見");
}
}
class People{
String name;
int age;
String profession;
public void introduce1()
{
}
public void makemoney()
{
}
}
class Doctor1 extends People{
String level;
public Doctor1(String name,int age,String profession,String level){
this.name=name;
this.age=age;
this.profession=profession;
this.level=level;
}
public void introduce1()
{
System.out.println("我是" name ",今年" age "歲," "我的職業(yè)是" profession ",我的級(jí)別是" level);
}
public void makemoney()
{
System.out.println("我是通過做手術(shù)賺錢的");
}
}
class Teacher1 extends People{
String school;
public Teacher1(String name,int age,String profession,String school)
{
this.name=name;
this.age=age;
this.profession=profession;
this.school=school;
}
@Override
public void introduce1()
{
System.out.println("我是" name ",今年" age "歲," "我的職業(yè)是" profession ",我所在的學(xué)校是" school);
}
@Override
public void makemoney()
{
System.out.println("我是通過教學(xué)生知識(shí)賺錢的");
}
}
八.作業(yè) 做一個(gè)學(xué)員管理系統(tǒng) 思路:創(chuàng)建學(xué)員對(duì)象
--------------------------------- 功能選擇: 功能選擇: 功能選擇: 功能選擇: package com.class1104;
import java.util.Scanner;
public class Test1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//菜單各種詢問,各種調(diào)用
Start st=new Start();
int s1;
String s2;
StuManager sm=new StuManager();
do{
st.select();
Scanner sc=new Scanner(System.in);
System.out.print("請(qǐng)選擇:");
s1=sc.nextInt();
switch(s1)
{
case 1:
System.out.println("添加學(xué)員:");
sm.addStu();
System.out.println("添加成功!");
break;
case 2:
sm.queryStu();
break;
case 3:
sm.deleteStu();
break;
case 4:
sm.updateStu();
break;
default:
System.out.println("輸入錯(cuò)誤");
break;
}
System.out.print("是否繼續(xù)?y/n:");
s2=sc.next();
System.out.println();
}while(s2.equals("y"));
}
}
class Start{
public Start()
{
for(int i=0;i<25;i )
{
System.out.print("-");
}
System.out.println();
System.out.println(" 歡迎使用學(xué)員管理");
for(int i=0;i<25;i )
{
System.out.print("-");
}
System.out.println();
}
public void select()
{
System.out.println("功能選擇:");
System.out.println(" 1.添加學(xué)員");
System.out.println(" 2.查看學(xué)員信息");
System.out.println(" 3.刪除學(xué)員");
System.out.println(" 4.修改學(xué)員");
}
}
class Student{
// 各種屬性。要求封裝
private String name;
private int age;
private String sex;
private String phone;
private String place;
public void setName(String name)
{
this.name=name;
}
public String getName()
{
return name;
}
public void setAge(int age)
{
this.age=age;
}
public int getAge()
{
return age;
}
public void setSex(String sex)
{
this.sex=sex;
}
public String getSex()
{
return sex;
}
public void setPhone(String phone)
{
this.phone=phone;
}
public String getPhone()
{
return phone;
}
public void setPlace(String place)
{
this.place=place;
}
public String getPlace()
{
return place;
}
}
// 學(xué)員管理類
class StuManager{
Student stu[]=new Student[50];
Scanner sc1=new Scanner(System.in);
public void addStu()
{
Student stu1=new Student();
for(int i=0;i<stu.length;i )
{
if(stu[i]==null)
{
stu[i]=stu1;
break;
}
}
System.out.print("姓名:");
stu1.setName(sc1.next());
System.out.print("年齡:");
stu1.setAge(sc1.nextInt());
System.out.print("性別:");
stu1.setSex(sc1.next());
System.out.print("電話:");
stu1.setPhone(sc1.next());
System.out.print("籍貫:");
stu1.setPlace(sc1.next());
}
public void queryStu()
{
System.out.print("姓名" "\t");
System.out.print("年齡" "\t");
System.out.print("性別" "\t");
System.out.print("電話" "\t");
System.out.print("籍貫" "\t");
for(int i=0;i<stu.length;i )
{
if(stu[i]!=null)
{
System.out.println();
System.out.print(stu[i].getName() "\t");
System.out.print(stu[i].getAge() "\t");
System.out.print(stu[i].getSex() "\t");
System.out.print(stu[i].getPhone() "\t");
System.out.print(stu[i].getPlace() "\t");
}
}
}
public void deleteStu()
{
System.out.print("請(qǐng)輸入要?jiǎng)h除的學(xué)員姓名:");
String name1=sc1.next();
boolean b1=false;
for(int i=0;i<stu.length;i )
{
if(stu[i]!=null)
{
if(stu[i].getName().equals(name1))
{
b1=true;
stu[i]=null;
int j=i;
while(j<stu.length-1)
{
stu[j]=stu[j 1];
j ;
if((j 1)==stu.length-1)
{
stu[j 1]=null;
}
}
i--;
}
}
}
if(b1)
{
System.out.println("刪除成功!");
}else{
System.out.println("未找到該學(xué)員!");
}
}
public void updateStu()
{
System.out.print("請(qǐng)輸入要修改的學(xué)員姓名:");
String name2=sc1.next();
boolean b2=false;
for(int i=0;i<stu.length;i )
{
if(stu[i]!=null)
{
if(stu[i].getName().equals(name2))
{
b2=true;
System.out.print("姓名:");
stu[i].setName(sc1.next());
System.out.print("年齡:");
stu[i].setAge(sc1.nextInt());
System.out.print("性別:");
stu[i].setSex(sc1.next());
System.out.print("電話:");
stu[i].setPhone(sc1.next());
System.out.print("籍貫:");
stu[i].setPlace(sc1.next());
}
}
}
if(b2)
{
System.out.println("修改成功!");
}else{
System.out.println("未找到該學(xué)員!");
}
}
}
? 來源:http://www./content-4-110201.html |
|
|