201521123087 《Java程序设计》第3周学习总结

news/2024/8/26 17:37:28

1、本周学习总结

2. 书面作业

    • 代码阅读

      public class Test1 {
          private int i = 1;//这行不能修改 private static int j = 2; public static void main(String[] args) { geti(); Test1getj(); } public static void geti() { System.out.println(i); } public static void getj() { System.out.println(j); } }

      1-以上代码可否编译通过?哪里会出错?为什么?尝试改正?                                                                                                                                                                                          不可以通过编译;图一中第15行出错;因为此时i变量不属于static变量;改正如图2所示。
      2-如果创建3个Test1对象,有内存中有几个i,几个j?请分析原因?                                                                                                                                                                                  在内存中会有3个i,因为对于一个static字段来说每个类只分有一份存储空间;在内存中会有一个j,因为对于一个非static字段来说每个对象会分一个存储空间。                                                 

    • 构造函数有什么用?其编写格式是什么?如果一个类不写构造函数,它有构造函数吗?如果一个类中只有带参的构造函数,它有没有不带参数的默认构造函数?                                                                    构造函数主要用来在创建对象时初始化对象; 编写格式:修饰符(public、private等) 类名(){……}; 若一个类不写构造函数,系统会自动加入默认的无参数、内容为空的构造函数;若一个类只有带参的构造函数,编译程序就不会自动建立默认构造函数。

    • 使用java.lang.Math类的函数时,为什么不需要new?如果new Math()会产生什么错误?分析原因?                                                                                                                                        如果一个方法是静态的,它是属于整个类的,可以用类名.方法来直接访问,不需要new一个新的对象,只需要在代码的头部加上import java.lang.Math即可,而不需要new一个新的对象。由于构造函数被声明为私有的,就是说明不能被外部调用,所以不能new出来一个新的对象,如果new Math()会产生编译错误。

    • 什么是重载?什么是构造函数重载?在java.lang.Math类中举出1个函数重载的例子?怎么才能区分两个重载函数?                                                                                                                        重载是指函数或者方法有相同的名称,但是参数列表不相同的情形;构造函数的重载指构造函数具有相同的名字,而参数的个数或参数类型不相同;在java.lang.Math类中函数重载的例子:static int getExponent(double d)和static int getExponent(float f) 区分两个重载函数:虽然函数有相同的名称,但是参数列表不相同,所以可以根据参数列表来区分两个重载函数。

    • final修饰的变量不能改变,为什么如下代码可以正常运行?

      final int[] NUMBS= {1,2,3,4,5}; NUMBS[2] = 1; final修饰引用类型变量,变量的值(引用)不能修改,但是变量指向的对象的值可以修改
    • 阅读代码EmployeeTest.java,回答:
      1. 为什么其属性均为private?这样设计有什么好处?                                                                                                                                                                                                                                                                                                     为了不让其示例对象直接通过对象.属性名来使用和修改,而是通过set属性名,get属性名,更安全,这样属性就不会随意的被赋值上任何非法的值了,可以在set属性名的方法中进行控制。
      2. Employee类增加一个无参构造函数,调用其有参构造函数,设置name为雇员1, salary为3000, hireDay的年月日为2017年3月5日。(粘贴代码)                                                                                                                                                                              Employee e = new Employee();                                                                                                                                                                                                                                                                                                                 e.getName("雇员1");                                                                                                                                                                                                                                                                                                                    e.getSalary(3000);                                                                                                                                                                                                                                                                                                                                    e.getHireDay(2017,3,5);                                                                                                                                                                                                                                                                                                                             System.out.println(e.getName());                                                                                                                                                                                                                                                                                                               System.out.println(e.getSalary());
      3. Employee类再增加一个有参构造函数,参数只有name与salary,hideDay为当前日期。(粘贴代码)                                                                                                                                                                                                                                     public Employee(String name, double salary , Date hireday){                                                                                                                                                                                                                                                                                    getName();                                                                                                                                                                                                                                                                                                                                                getSalary();                                                                                                                                                                                                                                                                                                                                              getHireDay();                                                                                                                                                                                                                                                                                                                                            }
    • 编写函数public static boolean isMondayToFriday()
      功能:判断今天如果是周一到周五,直接输出如“上班时间”并返回true,否则输出“休息时间”。
      提示:使用LocalDateTime, DayOfWeek                                                                                                                                                                                                                                                                                                                                                                                           

      3. 码云代码提交记录                                                                                                                                      

      4. PTA实验总结

    • 初始化块的修饰符只能是static,使用static修饰的初始化块被称为静态初始化。初始化块里的代码可以包含任何可执行性语句,包括定义局部变量 ,调用其他对象的方法,以及使用分支,循环语句等。{}单纯被一个大括号括起来的叫初始化块,static{}叫做静态初始化。
    • 静态初始化的等级是最高的,会最优先执行
    • Shift+Alt+S,Generate toString()自动补全toString;Generate Getter and Setters,自动添加。
    • Private ,编程语句在模块级别中使用,用于声明私有变量及分配存储空间。使用private修饰符可以完全隐藏类的成员,使得不能从类外直接访问它们。相对的,使用public修饰符允许任何类访问类的成员。
    • 在main函数里调用新建的类中定义的函数,必须先new一个对象,然后对这个对象进行操作。
    • 这次的实验感觉不会太难,而且数量也比较适中,感觉这样挺好的。。。

转载于:https://www.cnblogs.com/jbc1132/p/6535897.html


http://www.niftyadmin.cn/n/1748375.html

相关文章

htmp to pdf

C Library to Convert HTML to PDF html2pdfPrinceXML 收费CutePDFGhostscriptPDFDocVisPDFPDFDoc Scoutwkhtml2pdf 最完善方案,缺点:EXE&DLL文件太大githubPDF to HTML pdf2htmlEX githubPDF 操作SDK ByteScout – create PDF, extract text from P…

php composer.phar install 报错

在使用php composer.phar install 时报的错误mongodb/mongodb 1.0.0 requires ext-mongodb ^1.1.0 -> the requested PHP extension mongodb is missing from your system.这个问题的大致意思是mongodb1.00需要扩展驱动mongo 1.10,问题原因可能是:mongodb和mongodb的驱动扩展…

华为ET128 中兴ZTE MU351移动TD-SCDMA G3上网卡

#1 华为ET128 &中兴ZTE MU351移动TD-SCDMA G3上网卡在everest0.6配置成功 yippee 2009/7/20 13:41 前天去移动办了个随e行G3上网卡,回来一看,只有windows驱动和软件,但我平时多数时间在linux下,用google扒啦了一下&#xff0c…

关于在链路聚合下做smart,monitor link的转发测试

关于在链路聚合下做smart,monitor link的转发测试这次又要开始瞎折腾了。没事找事了。毕竟我还是很无聊的;这个实验主要要涉及到以下几个方面:1、gvrp的应用:2、Smart Link与Monitor Link的配置;3、链路聚合&#xff1…

嵌入式Linux下3G模块的驱动和应用

嵌入式Linux下3G模块的驱动和应用 技术 2010-09-25 13:25:13 阅读108 评论0 字号:大中小 订阅 嵌入式Linux下3G模块的驱动和应用 1、 开发资源 1.1、硬件资源: ZTE-mf637u(中国联通) ZTE-mu351(中国移…

中兴AC2746 usb接口的3G上网卡

嵌入式linux是2.6.24版的。主机是AT9261(arm926ej-s内核)的开发板。 买是市面上常见的中兴AC2746 usb接口的3G上网卡。在windows下使用极方便,可是在linux下使用就麻烦了。首先,要确认你的嵌入式linux系统是可以支持热插拔的系统。…

AvalonJS+MVVM实战部分源码

轻量级前端MVVM框架avalon,它兼容到 IE6 (其他MVVM框架,KnockoutJS(IE6), AngularJS(IE9), EmberJS(IE8), WinJS(IE9) ),它可以更高效地运行于IE10等新版本浏览器中.代码量少,方便格式化输出. AvalonJS的使用很方便,类似基础标签绑定值,前端代码非常简洁,如果你有一…

lsusb arm 移植

lsusb ARM 移植 1.下载源码: 1)wget http://dist.momonga-linux.org/pub/momonga/2/SOURCES/libusb-0.1.10.tar.gz;  2)wget http://www.sfr-fresh.com/l…