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. [MySQL]多表关联查询技巧

    示例表A: author_id author_name 1 Kimmy 2 Abel 3 Bill 4 Berton 示例表B: book_id author_id start_date end_da ...

  2. Python下划线的详解

    本文将讨论Python中下划线(_)字符的使用方法.我们将会看到,正如Python中的很多事情,下划线的不同用法大多数(并非所有)只是常用惯例而已. 单下划线(_) 通常情况下,会在以下3种场景中使用 ...

  3. springboot第一个项目【创建】

    1.new project,不勾选create from archetype,直接选择 2.next下一步 在Maven依赖管理中,唯一标识一个依赖项是由该依赖项的三个属性构成的,分别是groupId ...

  4. Confluence 6 安装补丁类文件

    Atlassian 支持或者 Atlassian 缺陷修复小组可能针对有一些关键问题会提供补丁来解决这些问题,但是这些问题还没有放到下一个更新版本中.这些问题将会使用 Class 类文件同时在官方 J ...

  5. Confluence 6 已经存在的 Confluence 安装配置一个数据源连接

    如果你希望在使用 JDBC 直接方式的应用中切换到使用数据源: 停止 Confluence. 备份下面的文件,以防止你可能需要重新恢复你的配置: <installation-directory& ...

  6. vue阿里上传图片报400错误

    首先我用vue上传阿里图片用的是分片上传,分片上传由于一片是以100kb为起始的,所以当图片大小小于100kb的时候不分片,可以正常上传,当大于100kb的时候,会报400错误如下 One or mo ...

  7. IO 多路复用

    IO 多路复用 多路复用也是要用单线程来处理客户端并发,与其他模型相比多出了select这个模块. 程序不再直接问操作系统要数据,而是先发起一个select调用,select会阻塞直到其中某个sock ...

  8. package.json包描述文件说明

    //commonjs包规范-说明 { "name": "leyi",//包名,不允许空格 "description": "hell ...

  9. dubbo源码之服务发布与注册

    服务端发布流程: dubbo 是基于 spring 配置来实现服务的发布的,对于dubbo 配置文件中看到的<dubbo:service>等标签都是服务发布的重要配置 ,对于这些提供可配置 ...

  10. Linux基础二:初识linux命令

    一.UNIX和Linux操作系统概述 1.UNIX是什么 1)UNIX的定义: UNIX是一个计算机操作系统,一个用来协调.管理和控制计算机硬件和软件资源的控制程序. 2)UNIX操作系统的特点:多用 ...