当前位置: 首页 > news >正文

南通网站推广/长春网站制作企业

南通网站推广,长春网站制作企业,深圳专业做网站排名多少钱,长春网站建设哪里好(一)学习总结 1.阅读下面程序,分析是否能编译通过?如果不能,说明原因。应该如何修改?程序的运行结果是什么?为什么子类的构造方法在运行之前,必须调用父 类的构造方法?能…

(一)学习总结

1.阅读下面程序,分析是否能编译通过?如果不能,说明原因。应该如何修改?程序的运行结果是什么?为什么子类的构造方法在运行之前,必须调用父 类的构造方法?能不能反过来?

class Grandparent {public Grandparent() {System.out.println("GrandParent Created.");}public Grandparent(String string) {System.out.println("GrandParent Created.String:" + string);}
}
class Parent extends Grandparent {public Parent() {        System.out.println("Parent Created");super("Hello.Grandparent.");}
}
class Child extends Parent {public Child() {System.out.println("Child Created");}
}
public class Test{public static void main(String args[]) {Child c = new Child();}
}

不能编译,原因:造函数调用必须是构造函数中的第一个语句。将语句super("Hello.Grandparent.")”放在子类Parent的构造方法的第一句。
构造函数(constructor)是一种特殊的方法 。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中 。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载。构造函数的功能主要用于在类的对象创建时定义初始化的状态。
构造一个对象,先调用其构造方法,来初始化其成员函数和成员变量。
子类拥有父的成员变量和成员方法,如果不调用,则从父类继承而来的成员变量和成员方法得不到正确的初始化。
不能反过来调用也是这个原因,因为父类根本不知道子类有神魔变量而且这样一来子类也得不到初始化的父类变量,导致程序运行出错。

2.阅读下面程序,分析程序中存在哪些错误,说明原因,应如何改正?正确程序的运行结果是什么?

class Animal{void shout(){System.out.println("动物叫!");}
}
class Dog extends Animal{public void shout(){  System.out.println("汪汪......!");  }public void sleep() {System.out.println("狗狗睡觉......");} 
}
public class Test{public static void main(String args[]) {Animal animal = new Dog(); animal.shout();animal.sleep();Dog dog = animal;dog.sleep(); Animal animal2 = new Animal();dog = (Dog)animal2;dog.shout();}
}

没有为类型 Animal 定义方法 sleep()
类型不匹配:不能从 Animal 转换为 Dog
改后的程序:

class Animal{void shout(){System.out.println("动物叫!");
}
void sleep(){System.out.println();
}
}
class Dog extends Animal{public void shout(){  System.out.println("汪汪......!");  }public void sleep() {System.out.println("狗狗睡觉......");} 
}
public class Test{public static void main(String args[]) {Animal animal = new Dog(); animal.shout();animal.sleep();Dog dog = (Dog)animal;dog.sleep(); Animal animal2 = new Dog();dog = (Dog)animal2;dog.shout();}
}

3.运行下列程序

class Person { private String name ; private int age ; public Person(String name,int age){ this.name = name ; this.age = age ; } 
}
public class Test{  public static void main(String args[]){ Person per = new Person("张三",20) ; System.out.println(per);System.out.println(per.toString()) ; } 
}

(1)程序的运行结果如下,说明什么问题?

Person@166afb3
Person@166afb3

没有调用String tostring()方法。

(2)那么,程序的运行结果到底是什么呢?利用eclipse打开println(per)方法的源码,查看该方法中又调用了哪些方法,能否解释本例的运行结果?

public void println(Object x) {String s = String.valueOf(x);synchronized (this) {print(s);newLine();}
}

(3)在Person类中增加如下方法
java public String toString(){ return "姓名:" + this.name + ",年龄:" + this.age ; }运行结果:
姓名:张三,年龄:20
姓名:张三,年龄:20
说明了,子类Person类重复了Object类中toString()方法

4.汽车租赁公司,出租汽车种类有客车、货车和皮卡三种,每辆汽车除了具有编号、名称、租金三个基本属性之外,客车有载客量,货车有载货量,皮卡则同时具有载客量和载货量。用面向对象编程思想分析上述问题,将其表示成合适的类、抽象类或接口,说明设计思路。现在要创建一个可租车列表,应当如何创建?

设计思路:

(1)定义一个抽象类,具有编号、名称、租金三个属性;

(2)定义两个接口:载货量、载客量;

(3)定义三个子类继承抽象类,客车类实现载客量接口,火车类实现载货量接口,皮卡类实现载客量和载货量接口。

5.阅读下面程序,分析代码是否能编译通过,如果不能,说明原因,并进行改正。如果能,列出运行结果

interface Animal{    void breathe();void run();void eat();}class Dog implements Animal{public void breathe(){System.out.println("I'm breathing");}void eat(){System.out.println("I'm eating");}}public class Test{public static void main(String[] args){Dog dog = new Dog();dog.breathe();dog.eat();}}

不能:接口中方法,默认是public abstract 所以在子类实现抽象方法时,应该用public修饰

(二)实验总结

实验内容:
定义员工类,具有姓名、年龄、性别属性,并具有构造方法和显示数据方法。定义管理层类,继承员工类,有自己的属性职务和年薪。定义职员类,继承员工类,并有自己的属性所属部门和月薪。定义一个测试类,进行测试。

2.按照下面要求完成类的设计

(1)设计一个平面图形抽象类(提供求该类对象周长和面积的方法)和一个立体图形抽象类(提供求该类对象表面积和体积的方法)

(2)设计球类、圆柱类,圆锥类、矩形类、三角形类、圆类,分别继承平面图形抽象类和立体图形抽象类。

(3)建立测试类,进行测试。画出类图。

3.. 参考类图,重构下面的实例,分析和理解多态的含义和用途

(1)某动物园有一饲养员小李,每天需要给他所负责饲养的一只狮子、五只猴子和十只鸽子喂食。 请用一个程序来模拟他喂食的过程。

分析这种编程方式有什么不合理的地方。

(2)第一次重构,引入继承,利用抽象类和对象多态重构程序,Animal类采用抽象类, 合并Feeder类中的方法

分析程序是否还可以进一步优化

(3)第二次重构,修改feedAnimals方法,让它接收一个Animal数组

(三)代码托管(务必链接到你的项目)https://gitee.com/hebau_java_cs16/Java_CS01-wyn/tree/master/ex03

1031679-20180419130034608-618900057.png

转载于:https://www.cnblogs.com/1601wyn/p/8793993.html

http://www.jmfq.cn/news/4971781.html

相关文章:

  • 网站seo文章该怎么写/免费发广告帖子的网站
  • 做运营需要看的网站/seo排名软件价格
  • 网站建设设计外包公司/it培训机构怎么样
  • 女性门户网站模板/竞价排名是什么意思
  • 深圳私人做网站/品牌推广经典案例
  • 南昌专业网站建设公司/网站建设流程是什么
  • 网站建站备案/58网络推广
  • 电子商务网站系统规划/友链交易交易平台
  • 武汉 网站制作案例/赚钱软件
  • 东莞网站推广哪些/关键词查询的分析网站
  • 梅州免费建站找哪家/百度收录快的发帖平台
  • 如何用jsp做网站/谷歌浏览器搜索引擎入口
  • 做教育app的网站有哪些/深圳外贸seo
  • 网站不续费/怎么弄一个网站
  • 郑州市做网站的/简述搜索引擎的工作原理
  • 橙子建站验证码/网站建设外包
  • 电子商务他们的代表网站/seo关键词推广怎么做
  • 昆山有名的网站建设公司/简述什么是seo
  • 建设部人才网站/萧山区seo关键词排名
  • 丹阳论坛/安徽seo人员
  • 专业商城网站建设/网站广告制作
  • 网站首页菜单栏/武汉seo优化排名公司
  • 海淀市场监管局网站/百度大数据官网
  • 测试网站是否真正是404错误/九幺seo工具
  • 电脑做ppt如何插入网站/网络推广网上营销
  • 汕头建站模板源码/百度网页版登录入口
  • wordpress adam & eve/seo优化专员
  • 威海市住房和城乡建设局官方网站/营销顾问
  • 企业网站博客上如何推广/最成功的网络营销案例
  • 专业做厂房的网站/东莞网站建设排名