NiXi.DAY06东软实训.:面向对象思想~抽象~static~final~构造方法及其重载

本章技能目标:

  • 使用类图描述设计
  • 掌握面向对象设计的基本步骤
  • 掌握类和对象的概念
  • 掌握构造方法及其重载
  • 掌握封装的概念及其使用

本章单词:

  class:类

  object:对象

  static:

  final:

  private:

  public:

  protect:

  overloding:方法重载

  overriding:方法覆盖

  constructor:构造方法

  encapsulation:封装

1.1用面向对象设计电子宠物系统

NiXi.DAY06东软实训.:面向对象思想~抽象~static~final~构造方法及其重载

NiXi.DAY06东软实训.:面向对象思想~抽象~static~final~构造方法及其重载

  万事万物皆对象

  从具体到抽象

  ¥*¥面向对象的过程就是抽象的过程:分三步来完成

    第一步:发现类

    第二步:发现类的属性

    第三步:发现类的方法

  NiXi.DAY06东软实训.:面向对象思想~抽象~static~final~构造方法及其重载

NiXi.DAY06东软实训.:面向对象思想~抽象~static~final~构造方法及其重载

 package day0702;
/**
* 宠物猫类
* @author 刘晶晶
*
*/
public class Cat {
String name="无名氏"; //姓名
String strain = "可爱的Cat"; //品种
int health = 80; //健康值
int love =60; //与主人的亲密度 /**
* 输出宠物的信息:自我介绍
*/
public void print(){
System.out.println("我的名字是:"+name);
System.out.println("我是:"+strain);
System.out.println("我的健康值是:"+health);
System.out.println("我与主人的亲密度是:"+love);
}
}
package day0702;
/**
* 宠物鱼类
* @author Administrator
*
*/
public class Fish {
String name = "无名氏"; //姓名
String sex = "小鱼妹"; //性别
int health = 60; //健康值
int love =80; //与主人的亲密度 /**
* 输出宠物的信息:自我介绍
*/
public void print(){
System.out.println("我的名字是:"+name);
System.out.println("我是:"+sex);
System.out.println("我的健康值是:"+health);
System.out.println("我与主人的亲密度是:"+love);
}
}
 package day0702;

 import java.util.Scanner;

 /**
* 宠物领养类
* @author Administrator
*
*/
public class PetTest { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("欢迎来到宠物之家!"); //创建键盘录入对象
Scanner input= new Scanner(System.in); //主人输入宠物的名字
System.out.println("请输入宠物的名字:");
String petName = input.next(); //选择宠物的类型
System.out.println("请输入领养宠物的类型:(1:猫 2:鱼)"); switch (input.nextInt()) {
case 1:
//选择了猫
//选择猫的品种
System.out.println("选择猫的品种:(1:可爱的Cat 2:活泼的Cat)");
String strain=null;
if(input.nextInt()==1){
strain="可爱的Cat";
}else if(input.nextInt()==2){
strain="活泼的Cat";
}
//创建猫的对象并赋值
Cat cat=new Cat(); cat.name=petName;
cat.strain=strain; //输出猫的信息 调用print方法
cat.print(); break;
case 2:
//选择了鱼
//选择鱼的性别
System.out.println("请输入鱼的性别:(1:小鱼妹 2:小鱼仔)");
String sex=null;
if(input.nextInt()==1){
sex ="小鱼妹";
}else if(input.nextInt()==2){
sex ="小鱼仔";
} //创建鱼的对象
Fish fish = new Fish();
fish.name=petName;
fish.sex=sex; //输出鱼的信息 调用print()方法
fish.print();
break; default:
System.out.println("抱歉,宠物店还没有此类宠物!");
break;
} } }

静态变量static final

NiXi.DAY06东软实训.:面向对象思想~抽象~static~final~构造方法及其重载

NiXi.DAY06东软实训.:面向对象思想~抽象~static~final~构造方法及其重载

NiXi.DAY06东软实训.:面向对象思想~抽象~static~final~构造方法及其重载

NiXi.DAY06东软实训.:面向对象思想~抽象~static~final~构造方法及其重载NiXi.DAY06东软实训.:面向对象思想~抽象~static~final~构造方法及其重载

NiXi.DAY06东软实训.:面向对象思想~抽象~static~final~构造方法及其重载

NiXi.DAY06东软实训.:面向对象思想~抽象~static~final~构造方法及其重载

1.2.2  构造方法及其重载

无参构造方法

NiXi.DAY06东软实训.:面向对象思想~抽象~static~final~构造方法及其重载

NiXi.DAY06东软实训.:面向对象思想~抽象~static~final~构造方法及其重载

 package day0702;
/**
* 宠物猫类
* @author 刘晶晶
*
*/
public class Cat {
String name="无名氏"; //姓名
String strain = "可爱的Cat"; //品种
int health = 80; //健康值
int love =60; //与主人的亲密度 /**
* 无参构造方法
*/
public Cat(){
name="楠楠";
strain="嘻哈的Cat";
health=89;
love=98;
System.out.println("执行构造方法");
} /**
* 输出宠物的信息:自我介绍
*/
public void print(){
System.out.println("我的名字是:"+name);
System.out.println("我是:"+strain);
System.out.println("我的健康值是:"+health);
System.out.println("我与主人的亲密度是:"+love);
} /**
* 测试无参构造方法的使用
*/
public static void main(String[] args){
//创建Cat对象
Cat cat = new Cat(); //调用cat对象的方法,输出cat的信息
cat.print();
} }

运行结果:

NiXi.DAY06东软实训.:面向对象思想~抽象~static~final~构造方法及其重载

NiXi.DAY06东软实训.:面向对象思想~抽象~static~final~构造方法及其重载

有参构造方法

NiXi.DAY06东软实训.:面向对象思想~抽象~static~final~构造方法及其重载

NiXi.DAY06东软实训.:面向对象思想~抽象~static~final~构造方法及其重载

NiXi.DAY06东软实训.:面向对象思想~抽象~static~final~构造方法及其重载

NiXi.DAY06东软实训.:面向对象思想~抽象~static~final~构造方法及其重载

NiXi.DAY06东软实训.:面向对象思想~抽象~static~final~构造方法及其重载

1.2.3常见错误

NiXi.DAY06东软实训.:面向对象思想~抽象~static~final~构造方法及其重载

NiXi.DAY06东软实训.:面向对象思想~抽象~static~final~构造方法及其重载

NiXi.DAY06东软实训.:面向对象思想~抽象~static~final~构造方法及其重载

NiXi.DAY06东软实训.:面向对象思想~抽象~static~final~构造方法及其重载

NiXi.DAY06东软实训.:面向对象思想~抽象~static~final~构造方法及其重载

练习

NiXi.DAY06东软实训.:面向对象思想~抽象~static~final~构造方法及其重载

NiXi.DAY06东软实训.:面向对象思想~抽象~static~final~构造方法及其重载

NiXi.DAY06东软实训.:面向对象思想~抽象~static~final~构造方法及其重载

NiXi.DAY06东软实训.:面向对象思想~抽象~static~final~构造方法及其重载

Dog

+name:String

+strain:String

+health:int

+love:int

 +print():void

Dog类图

NiXi.DAY06东软实训.:面向对象思想~抽象~static~final~构造方法及其重载

NiXi.DAY06东软实训.:面向对象思想~抽象~static~final~构造方法及其重载

上述代码已展示

NiXi.DAY06东软实训.:面向对象思想~抽象~static~final~构造方法及其重载

NiXi.DAY06东软实训.:面向对象思想~抽象~static~final~构造方法及其重载

 package day0702;
/**
* 马类 带参构造方法
* @author Administrator
*
*/
public class Horse {
/**
* 有参构造方法
* @param name
* @param strain
* @param age
*/
public Horse(String name, String strain, int age) {
super();
this.name = name;
this.strain = strain;
this.age = age;
}
/**
* 有参构造方法 name一个参数
*/
public Horse(String name){
this.name=name;
} /**
* 无参构造方法
*/
// public Horse() {
// super();
// // TODO Auto-generated constructor stub
// }
String name;
String strain;
int age; /**
*输出马信息的方法
* @param args
*/
public void showHorse(){
System.out.println("马的名字是:"+name);
System.out.println("马的品种是:"+strain);
System.out.println("马的年龄是:"+age);
} public static void main(String[] args){
//创建Horse对象
//Horse horse =new Horse();
//当把前面的无参构造方法注释的时候,此条语句报错,因为缺少无参构造
Horse horse =null;
horse=new Horse("千里良驹");
horse.showHorse(); } }

NiXi.DAY06东软实训.:面向对象思想~抽象~static~final~构造方法及其重载

NiXi.DAY06东软实训.:面向对象思想~抽象~static~final~构造方法及其重载

NiXi.DAY06东软实训.:面向对象思想~抽象~static~final~构造方法及其重载

NiXi.DAY06东软实训.:面向对象思想~抽象~static~final~构造方法及其重载

???

NiXi.DAY06东软实训.:面向对象思想~抽象~static~final~构造方法及其重载

NiXi.DAY06东软实训.:面向对象思想~抽象~static~final~构造方法及其重载

  

上一篇:关于xml配置实现AOP的小知识


下一篇:h5图片上传简易版(FileReader+FormData+ajax)