NiXi.DAY06东软实训.:面向对象思想~抽象~static~final~构造方法及其重载
本章技能目标:
- 使用类图描述设计
- 掌握面向对象设计的基本步骤
- 掌握类和对象的概念
- 掌握构造方法及其重载
- 掌握封装的概念及其使用
本章单词:
class:类
object:对象
static:
final:
private:
public:
protect:
overloding:方法重载
overriding:方法覆盖
constructor:构造方法
encapsulation:封装
1.1用面向对象设计电子宠物系统
万事万物皆对象
从具体到抽象
¥*¥面向对象的过程就是抽象的过程:分三步来完成
第一步:发现类
第二步:发现类的属性
第三步:发现类的方法
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
1.2.2 构造方法及其重载
无参构造方法
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();
} }
运行结果:
有参构造方法
1.2.3常见错误
练习
+name:String +strain:String +health:int +love:int |
+print():void |
Dog类图
上述代码已展示
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~构造方法及其重载的更多相关文章
- 逆袭之旅.DAY07东软实训..封装~继承~抽象~final
2018年7月3日.逆袭之旅DAY07 package day0703.exam1; /** * 狗狗类 使用权限修饰符private和public进行封装 * @author Administrat ...
- 【东软实训】SQL多表链接
如果一个查询同时涉及两个以上的表,则称之为链接查询,链接查询是关系数据库中最主要的查询,主要包括等值链接查询.非等值链接查询.自身链接查询.外链接查询和复合条件链接查询. 这篇博文我们来对多表链接进行 ...
- 【东软实训】SQLselect及其相关操作
SQL select 及相关操作 SQL是用于访问和处理数据库的标准的计算机语言,我们所使用的的是Oracle SQL 一个数据库通常包含一个或多个表,每个表有一个名字表示,下图即为一个名为“emp” ...
- 东软实训1 -jsp内置对象及其常用方法
JSP 的内置对象及方法详细说明 一. request 对象 客户端的请求信息被封装在 request 对象中,通过它才能了解到客户的需 求,然后做出响应.它是 HttpServletRequest ...
- 东软实训4-JDBC连接数据库
JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口 ...
- 东软实训3-servlet基础
Java Servlet技术的核心就是在服务端创建能响应用户请求的对象,被创建的对象习惯上称为一个Servlet对象. 编写一个创建servlet对象的类就是编写一个特殊类的子类,这个特殊的类就是ja ...
- 东软实训2-在jsp中使用javaBean
在JSP中可以像使用普通类一样访问JavaBean,在脚本元素中实例化类的对象,调用对象的方法.JSP提供了3个动作元素,和来访问JavaBean. 1.1 动作用于初始化JavaBean,或者定位一 ...
- 逆袭之旅DAY17.东软实训.Oracle.PLSQL.过程,函数,包,练习
2018-07-13 14:54:46 --1.创建一个包,包含一个为雇员加薪的过程,一个为雇员减薪的过程 CREATE OR REPLACE PACKAGE pac_test1 IS PROCEDU ...
- 逆袭之旅DAY17.东软实训.Oracle.存储过程
2018-07-13 09:08:36
随机推荐
- Lua面向对象之三:其它一些尝试
1.尝试一:子类对象调用被覆盖了的父类函数 根据元表设置流程,我们只有将父类元表找到就能调用父类的方法了 ①在子类Circle中增加一个调用父类方法的函数 --调用父类被子类覆盖了的name方法 fu ...
- spring boot: 支持jsp,支持freemarker
spring boot: 支持jsp,支持freemarker 支持jsp: 加入依赖 <!--jsp--> <dependency> <groupId>org.a ...
- slf4j/logback: logging日志的配置
slf4j/logback: logging日志的配置 import依赖: import org.slf4j.Logger;import org.slf4j.LoggerFactory;private ...
- C# 获取当前服务器运行程序的根目录
C# 获取当前服务器运行程序的根目录,获取当前运行程序物理路径 string tmpRootDir = AppDomain.CurrentDomain.BaseDirectory;//获得当前服务器程 ...
- GreenDao使用解析
GreenDao是一个轻量级的数据库框架,相比Xutils 等他的速度和效率会更快更好 这里展示GreenDao 的使用方法 ①建立 compile 'org.greenrobot:greendao: ...
- android-------开发常用框架汇总
响应式编程 RxJava https://github.com/ReactiveX/RxJava RxAndroid https://github.com/ReactiveX/RxAndroid 消息 ...
- Confluence 6 配置边栏链接
选择图标来显示或者隐藏,页面(pages),博客页面(blogs),快捷键(shortcuts )或者导航选项(navigation options).例如,如果你希望i的这个公开主要用于博客用途,你 ...
- PHP的几种输出方式
请写出echo.print_r.print.var_dump .die之间的区别 echo 只能输出字符串等单一数据 不能输出数据类型 不能输出数组等多种数据 print() 只能输出字符串等单一 ...
- SPL之AccessArray
<?php /** * Class MyArrayAccess * 提供像访问数组一样访问对象的能力的接口 */ class MyArrayAccess implements ArrayAcce ...
- Vue之单文件组件的数据传递,axios请求数据及路由router
1.传递数据 例如,我们希望把父组件的数据传递给子组件. 可以通过props属性来进行传递. 传递数据三个步骤: 步骤1:在父组件中,调用子组件的组名处,使用属性值的方式往下传递数据 <Menu ...