本视频是解读性视频,所以希望您已经看过了本知识点的内容,并且编写了相应的代码之后,带着疑问来观看,这样收获才多。 不建议一开始就观看视频
13分20秒 本视频采用html5方式播放,如无法正常播放,请将浏览器升级至最新版本,推荐火狐,chrome,360浏览器。 如果装有迅雷,播放视频呈现直接下载状态,请调整 迅雷系统设置-基本设置-启动-监视全部浏览器 (去掉这个选项)。 chrome 的 视频下载插件会影响播放,如 IDM 等,请关闭或者切换其他浏览器 步骤 1 : UML 图 —— 类之间的关系 步骤 2 : 解释UML-类图 步骤 3 : 解释UML-接口图 步骤 4 : 解释UML-继承关系 步骤 5 : 解释UML-实现关系 步骤 6 : 练习-Animal类 步骤 7 : 答案-Animal类 步骤 8 : 练习-Spider类 步骤 9 : 答案-Spider类 步骤 10 : 练习-Pet接口 步骤 11 : 答案-Pet接口 步骤 12 : 练习-Cat类 步骤 13 : 答案-Cat类 步骤 14 : 练习-Fish类 步骤 15 : 答案-Fish类
UML-Unified Module Language
统一建模语言,可以很方便的用于描述类的属性,方法,以及类和类之间的关系
带箭头的实线,表示 Spider,Cat, Fish都继承于Animal这个父类.
注: 模糊是表示,此时不需要关注模糊的那部分内容。 请不要再发图片是模糊的纠正信息了,站长特意这么做的。。。
表示 Fish实现了 Pet这个接口
1. 创建Animal类,它是所有动物的抽象父类。
2. 声明一个受保护的整数类型属性legs,它记录动物的腿的数目。 3. 定义一个受保护的构造器,用来初始化legs属性。 4. 声明抽象方法eat。 5. 声明具体方法walk来打印动物是如何行走的(包括腿的数目)。
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
public abstract class Animal {
protected int legs;
protected Animal(int legs){
this.legs = legs;
}
public abstract void eat();
public void walk(){
System.out.println("用 " + legs + " 条腿走路");
}
}
public abstract class Animal { protected int legs; protected Animal(int legs){ this.legs = legs; } public abstract void eat(); public void walk(){ System.out.println("用 " + legs + " 条腿走路"); } }
1. Spider继承Animal类。
2. 定义默认构造器,它调用父类构造器来指明所有蜘蛛都是8条腿。 3. 实现eat方法
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
public class Spider extends Animal{
@Override
public void eat() {
System.out.println("spider eating");
}
public Spider(){
super(8);
}
}
public class Spider extends Animal{ @Override public void eat() { System.out.println("spider eating"); } public Spider(){ super(8); } }
根据UML类创建pet(宠物)接口
1. 提供getName() 返回该宠物的名字 2. 提供setName(String name) 为该宠物命名 3. 提供 play()方法
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
public interface Pet {
public void setName(String name);
public String getName();
public void play();
}
public interface Pet { public void setName(String name); public String getName(); public void play(); }
1. 该类必须包含String属性来存宠物的名字。
2. 定义一个构造器,它使用String参数指定猫的名字;该构造器必须调用超类构造器来指明所有的猫都是四条腿。 3. 另定义一个无参的构造器。该构造器调用前一个构造器(用this关键字)并传递一个空字符串作为参数 4. 实现Pet接口方法。 5. 实现eat方法。
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
public class Cat extends Animal implements Pet{
private String name;
public Cat(String name){
super(4);
this.name = name;
}
public Cat(){
this("");
}
@Override
public void setName(String name) {
this.name = name;
}
@Override
public String getName() {
// TODO Auto-generated method stub
return name;
}
@Override
public void play() {
System.out.println("Cat is playing");
}
@Override
public void eat() {
System.out.println("eating");
}
}
1. 创建Fish类,它继承Animal类
2. 重写Animal的walk方法以表明鱼不能走且没有腿。 3. 实现Pet接口 4. 无参构造方法 5. 提供一个private 的name属性
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
public class Fish extends Animal implements Pet{
private String name;
protected Fish() {
super(0);
}
@Override
public void eat() {
System.out.println("Fish is eating");
}
public void walk(){
System.out.println("swimming");
}
@Override
public void setName(String name) {
// TODO Auto-generated method stub
this.name = name;
}
@Override
public String getName() {
// TODO Auto-generated method stub
return this.name;
}
@Override
public void play() {
// TODO Auto-generated method stub
System.out.println("playing");
}
}
HOW2J公众号,关注后实时获知最新的教程和优惠活动,谢谢。
问答区域
2024-05-18
上传代码
回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
2023-08-16
大家看看哪里有问题吗
3 个答案
wuwa-_- 跳转到问题位置 答案时间:2024-03-25 hncj指尖风雨 跳转到问题位置 答案时间:2023-12-30 package demo1;
public abstract class Animal {
protected int legs;
protected Animal(int legs){
this.legs=legs;
}
public Animal() {
}
public abstract void eat();
public void walk(int legs){
System.out.println("用"+this.legs+"条腿走路");
}
/**
* 获取
* @return legs
*/
public int getLegs() {
return legs;
}
/**
* 设置
* @param legs
*/
public void setLegs(int legs) {
this.legs = legs;
}
public String toString() {
return "Animal{legs = " + legs + "}";
}
}package demo1;
public interface Pet {
public void play();
public void getName();
public void setName(String name);
}package demo1;
public class Fish extends Animal implements Pet {
private int name;
protected Fish(int legs) {
super(legs);
}
public Fish() {
}
@Override
public void eat() {
System.out.println("鱼在吃草");
}
public void walk() {
System.out.println("鱼不能走且没有腿");
}
@Override
public void play() {
}
@Override
public void getName() {
}
@Override
public void setName(String name) {
}
public String toString() {
return "Fish{}";
}
}
package demo1;
public class Spider extends Animal {
protected Spider(int legs) {
super(legs);
}
@Override
public void eat() {
System.out.println("蜘蛛在eat");
}
}
package demo1;
public class Cat implements Pet {
public String name;
public Cat() {
}
public Cat(String name) {
this.name = name;
}
@Override
public void play() {
System.out.println("猫在玩");
}
@Override
public void getName() {
}
@Override
public void setName(String name) {
this.name = name;
}
public String toString() {
return "Cat{name = " + name + "}";
}
}
RobertLewandowski9 跳转到问题位置 答案时间:2023-09-22 public abstract class Animal {
public String name;
protected int legs;
public abstract void eat();
protected void setLegs(int legs){
this.legs=legs;
}
public void walk()
{
System.out.println(this.name+"这个动物用"+this.legs+"条腿走路");
}
}
class rabbit extends Animal{
public rabbit(String name,int legs)
{
this.name=name;
this.legs=legs;
}
@Override
public void eat() {
System.out.println(name+"吃草");
}
public static void main(String[] a)
{
rabbit r=new rabbit("兔子",4);
r.walk();
r.eat();
}
}
回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
2023-04-15
Animal-Spider-Pet-Cat-Fish
2022-10-22
最终答案
2022-01-20
Animal类里应该增加一个属性:name的,这是所有动物都有的属性。
提问太多,页面渲染太慢,为了加快渲染速度,本页最多只显示几条提问。还有 53 条以前的提问,请 点击查看
提问之前请登陆
提问已经提交成功,正在审核。 请于 我的提问 处查看提问记录,谢谢
|