20165235祁瑛 2018-3 《Java程序设计》第三周学习总结

教材学习内容总结

类与对象学习总结
  • 类:java作为面向对象型语言具有三个特性:①封装性。②继承性。③多态性。java中类是基本要素,类声明的变量叫对象。在类中定义体的函数题叫方法。
  • 类与程序的基本结构:(一)构造方法:创建对象时用,构造方法与类同名,没有类型。可以创建构造方法,但要保证参数个数不同或参数类型不同。(二)为对象分配变量时要用new字符。用“.”运算符来操作对象。(三)java有若干个类构成,这些类可以在一个源文件也可以在若干文件夹里。
  • 参数传值:(一)传值机制:方法中参数变量的值是调用者指定值得拷贝。
  • 对象的组合:一个类可以把某个对象作为自己的成员变量。一个对象a组合了对象b,那么a可以委托b调用其方法,即对象a以组合的方式复用b的方法。
  • 实例成员与类成员(一)在变量或方法前加上static叫类变量,否则叫实例变量。(二)区别:不同对象的实例变量各不相同,所有对象共享类变量,直接可以通过类名进行访问。(三)类方法只能调用类变量,而实例变量可以调用类变量,也可以调用实例变量。
  • 方法重载:(一)定义:一个类可以有多个方法具有相同的名字,但是得保证这些方法的参数不同或参数类型不同。(二)调用重载方法引用要明确,对应相同类型的参数,调用相同类型的参数的重载方法。
  • this关键字:(一)this关键字表示某个对象。(二)this不可以出现在类方法中,在类方法中可以将this改为类名。
  • 包:通过包语句package将几个源文件打包在一个文件夹下,可以对java文件进行有效的管理。
  • import语句:(一)语句作用是引入包中的类。(二)java.lang包是java语言的核心语句,不需要import语句来引入,其中包括“System类,Math类”。(三)如果没有用import引入包内的类,可以直接带包名使用该类。(四)用 private,public,protected修饰的方法和成员变量有一定的访问权限。(五)javadoc 文件名.java 会在目录中生成一个html的文档,可以用浏览器进行查看。
  • JRE扩展与jar文件:/jre/lib/ext,只要经类打包成jar文件,放入ext中,程序就可以使用import来使用扩展中的类。

    教材学习中的问题和解决过程

  • 问题1:在教材78页有个代码,为什么汉字也可以作为变量使用,汉字在java语言中不是作为Unicode编码存在的吗?
  • 问题1解决方案:网上寻找答案,得出答案:Java支持中文类名、方法名、属性名,并且不会因为乱码问题导致运行期链接失败。这是Java内核支持UTF-8这一特性决定的。但是Java语言规范里并不支持这一用法.详见Java中用中文命名
  • 问题2:在方法重载时可以只保证返回类型不一样吗?
  • 问题2解决方案:上网寻得答案:方法返回类型不参与运算和比较,所以还是得保证方法参数不同,或参数类型不同。

代码调试中的问题和解决过程

  • 问题1:在编译时会有main方法的类时会出现“找不到符号的错误”,但是代码本身没有什么语法错误。

  • 问题1解决方案:在学习到包语句之后,我将与之有关的源文件打包package Java_pack.pack_1,并对这几个源文件进行同时编译javac bin/Java_pack/pack_1/*.java,这样就没有出现错误。然后输入java -cp .:bin Java_pack.pack_1.文件名

下面是我在unbuntu中建立的包文件目录:

代码托管

学习感悟

在本周的学习中我受益匪浅,从类到创建对象以及对调用方法等让我感到java这个面向对象语言的强大,但让我真正感到强大的是java庞大的类库,比如java.lang,java.until等,这些类库给我们提供了很多算法。与c语言不同的是,c语言一个很简单的算法如排序查找等都得自己写算法,而java就可以通过import语句调用类库中的算法。其实我觉得c语言中的结构体与Java中的类有着相同的作用,c语言中有结构体数组,而java中有对象数组,都是在数组中存放一个个结构体或对象。但区别是是C语言中的结构体只是面向自己,而java中的类是面向所有对象的,不同的源文件可以调用不同源文件中的类。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 31/200 1/2 12/20 git使用
第二周 404/500 3/4 24/38 java基本语法
第三周 920/1000 4/7 52/60 类与对象以及打包

参考资料

20165235祁瑛 2018-3 《Java程序设计》第三周学习总结的更多相关文章

  1. 20165235 祁瑛 2018-4 《Java程序设计》第九周学习总结

    20165235 祁瑛 2018-4 <Java程序设计>第九周学习总结 教材学习内容总结 URL类 UR类是java.net包中的一个重要类,使用URL创建的对象的应用程序称作称作客户端 ...

  2. 20165235 祁瑛 2018-3 《Java程序设计》第四周学习总结

    20165235 祁瑛 2018-3 <Java程序设计>第四周学习总结 教材学习内容总结 第五单云总结 (一)子类与继承1.java中子类只能有一个父类,在类名前用extends标记.2 ...

  3. 20165235 祁瑛 2018-4 《Java程序设计》第八周学习总结

    20165235 祁瑛 2018-4 <Java程序设计>第八周学习总结 教材学习内容总结 操作系统与进程 程序是一段静态的代码,它是应用软件执行的蓝本.进程是程序的一次动态执行过程,它对 ...

  4. 20165235 祁瑛 2018-4 《Java程序设计》第七周学习总结

    20165235 祁瑛 2018-4 <Java程序设计>第七周学习总结 教材学习内容总结 MySQL数据管理系统 MySQL数据管理系统,简称MySQL,是世界上流行的数据管理系统. M ...

  5. 20165235 祁瑛 2018-4 《Java程序设计》第六周学习总结

    20165235 祁瑛 2018-4 <Java程序设计>第六周学习总结 教材学习内容总结 常用实用类 (一)1.String类是final类型的,String类型常量也是对象.2.可以使 ...

  6. Java程序设计第三周学习总结

    1. 本周学习总结 2. 书面作业 Q1.代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; ...

  7. 2018-03-11 20165235祁瑛《Java程序设计》第二周学习总结

    2018-03-11 20165235祁瑛<Java程序设计>第二周学习总结 教材学习内容总结 第二章要点: 在这一章中我学到了很多东西: (1)布尔类型boolean,布尔类型的赋值只能 ...

  8. 学号 20175212 《Java程序设计》第九周学习总结

    学号 20175212 <Java程序设计>第九周学习总结 教材学习内容总结 一.MySQL数据库管理系统 1.在官网上下载并安装MySQL 2.在IDEA中输入测试代码Connectio ...

  9. 20145213《Java程序设计》第九周学习总结

    20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...

随机推荐

  1. 基于MVC 的Quartz.Net组件实现的定时执行任务调度

    新建mvc项目之后,首先引用Quartz组件.工具-->NuGet包管理器-->管理解决方案的 NuGet包管理器 组件安装完成. Quartz.Net一个最简单任务至少包括三部分实现:j ...

  2. css之relative

    一.relative对absolute的限制作用 1.限制left/top/right/bottom定位.absolute默认是在也没的左上角,当父类设定为relative,absolute就被限制在 ...

  3. 10分钟了解Android的Handler机制

    Handler机制是Android中相当经典的异步消息机制,在Android发展的历史长河中扮演着很重要的角色,无论是我们直接面对的应用层还是FrameWork层,使用的场景还是相当的多.分析源码一探 ...

  4. Js:消息弹出框、获取时间区间、时间格式、easyui datebox 自定义校验、表单数据转化json、控制两个日期不能只填一个

    (function ($) { $.messageBox = function (message) { $.messager.show({ title:'消息框提示', msg:message, sh ...

  5. 处理:“ORA-28002: the password will expire within 7 days”的问题

    一:问题描述: 二:处理步骤 [oracle@localhost 2018_07_14]$ rlwrap sqlplus / as sysdba; SQL*Plus: Release 11.2.0.3 ...

  6. Confluence 6 数据库表-集群(Clustering)

    下面的表格包含了 Confluence 站点使用集群的信息. clustersafety 在通常的情况下,这个表格只有一条记录. safetynumber 的值是 Confluence 被用来如何找到 ...

  7. LeetCode(110):平衡二叉树

    Easy! 题目描述: 给定一个二叉树,判断它是否是高度平衡的二叉树. 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1. 示例 1: 给定二叉树 [3, ...

  8. Niagara workbench 介绍文档---翻译

    一. 发现在建立station的时候存在一些问题,所以对技术文档部分做一个详细的了解,在这之前对出现的问题总结一下 1.  在 Windows操作系统中Application Direction中可以 ...

  9. Winhex数据恢复笔记(五)

    一.上次介绍了Windows API函数,这次对Windows API函数的参数做个笔记 1.IpFileName:  文件名指针,也可指向 MS-Dos设备名,同时支持文件和设备名,函数分为两个版本 ...

  10. N阶楼梯上楼问题

    N阶楼梯上楼问题 时间限制: 1 Sec  内存限制: 32 MB 题目描述 样例输出 13 #include <stdio.h> int main() { int i, n; long ...