《Java技术》第二次作业--面向对象基础

本文主要介绍了Java构造方法的概念及其重载,面向对象的封装性实现,单例设计模式的应用,以及参数传递机制的理解等内容。

(一)学习总结

1.什么是构造方法?什么是构造方法的重载?下面的程序是否可以通过编译?为什么?
1253824-20180329163503654-1133668212.png

构造方法是一种特殊的方法,与一般的方法不同是: 1.构造方法的名字必须与定义他的类名完全相同,没有返回类型,甚至连void也没有。 2.构造方法的调用是在创建一个对象时使用new操作进行的。构造方法的作用是初始化对象。 3.不能被static、final、synchronized、abstract和native修饰。构造方法不能被子类继承。 构造方法可以被重载。与一般的方法一样,构造方法可以进行任何活动,但是经常将他设计为进行各种初始化活动,比如初始化对象的属性。
构造方法的重载:在主函数中调用构造方法,相当于调用函数,只不过是用类声明了的。并且一个类可以有多个构造方法,系统有默认的构造方法,所以没有写也会自动补上。
该程序不能通过编译,因为构造方法在重载时没有返回值,可以在括号里加0;
1253824-20180329164257227-592115068.png

2.运行下列程序,结果是什么?分析原因,应如何修改。
1253824-20180329164328318-165790915.png
运行结果
1253824-20180329164752020-1313733740.png

调用数组对象为空,没有进行正常的初始化。
改正之后:
1253824-20180329165940669-1249201696.png
1253824-20180329165955658-887338537.png

3.运行下列程序,结果是什么?说明原因。
1253824-20180329170030311-564134902.png
结果为:

1253824-20180329170133012-235939418.png
申请了两次内存空间,存相同的变量,但是比较的并不是值本身,也包括地址,因为申请的内存空间并不是一块,所以地址不同,输出false。
4.什么是面向对象的封装性,Java中是如何实现封装性的?试举例说明。
类的封装性即不能让外面的类随意修改一个类的成员变量;
在定义一个类的成员,使用private关键字说明这个成员的访问权限,只能被这个类的其他成员方法调用,而不能被其他的类中的方法所调用;
为实现封装性,常将类的成员变量声明为private,再通过public的方法来对这个变量进行访问。对一个变量的操作,一般都有 读取和赋值操作,我们一般定义两个方法来实现这两种操作,即:getxxx()与setxxx();
5.阅读下面程序,分析是否能编译通过?如果不能,说明原因。
1253824-20180329170812010-585714361.png

不能通过编译,因为A类中的属性前边有private,说明该属性是私有属性,只能在本类中调用,若在测试类中想要调用,则可用get,set方法。
1253824-20180329171024225-2042928365.png

不能通过编译,必须将x定义为static类,变量若想在全局使用,则应该设为静态变量。
6.使用类的静态变量和构造方法,可以跟踪某个类创建的对象个数。声明一个图书类,数据成员为编号,书名,书价,并拥有静态数据成员册数记录图书的总数。图书编号从1000开始,每产生一个对象,则编号自动递增(利用静态变量和构造方法实现)。下面给出测试类代码和Book类的部分代码,将代码补充完整。
1253824-20180329193119530-71952665.png
1253824-20180329193141570-23785174.png
1253824-20180329193159724-216200197.png
7.什么是单例设计模式?它具有什么特点?用单例设计模式设计一个太阳类Sun。
java中单例模式是一种常见的设计模式,单例模式分:懒汉式单例、饿汉式单例。
 单例模式有一下特点:
  1、单例类只能有一个实例。
  2、单例类必须自己自己创建自己的唯一实例。

class Sun{
      private Sun instance =  new Sun();
      private Sun(){ 

      }
      public static Sun getInstance(){
          return instance;
      }
}

8.理解Java参数传递机制,阅读下面的程序,运行结果是什么?说明理由。
1253824-20180329193753792-1142490926.png

通过构造方法实例化对象,优先输出;

1.用面向对象思想完成评分系统
程序设计思路:分别定义选手类,分数类,测试类,在测试类中运用
2.Email验证:
4.统计文件
学会方法的调用
5.类的设计
码云提交记录截图
1253824-20180401201656963-1440156239.png

转载于:https://www.cnblogs.com/zy14122/p/8671036.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值