20165211 2017-2018-2 《Java程序设计》第3周学习总结
20165211 2017-2018-2 《Java程序设计》第3周学习总结
教材学习内容总结
本周,我学习了书本上第四章的内容,以下是我整理的主要知识。
第四章 类与对象
编程语言的几个发展阶段
面向机器
代表语言:汇编语言,执行速度快。
面向过程
代表语言:C语言
int max(int a,int b){
if(a>b)
return a;
else
return b;
}
面向对象
在学习面向对象语言的过程中,一个简单的理念就是:需要完成某种任务时,首先要想到,谁去完成任务,即哪个对象去完成任务。
代表语言:Java,C++
类产生具体的对象
3.1 封装性
3.2 继承
3.3 多态
类
类是Java程序的基本要素,一个Java应用程序就是由若干个类所构成的。
类是Java语言中最基本的“数据类型”,类封装这数据和对数据的操作。
类声明的变量被称作对象变量,简称变量。
类声明
(public) class PeopleChina
类体:变量声明(属性)+方法(行为)
(1)成员变量:变量声明部分声明的变量,有效范围整个类和书写位置无关。(2)方法:定义方法
方法体:局部变量和语句构成
参数在方法内有用
方法体内声明的是局部变量,只在方法内有效与书写位置有关
局部变量与成员变量同名:成员变量被隐藏暂时失效。
局部变量没有默认值。
构造方法与对象的创建
构造方法
创建对象时用
构造方法的名字和类名一样,没有类型
(1)默认的构造方法,如果不定义构造方法,系统提供默认的构造方法。
(2)自定义构造方法,自定义的多个构造方法必须参数不同,个数不同,或对应的某个参数类型不同。
创建变量
(1)声明对象
类的名字 对象名字
(2)为声明的对象分配变量。
用new运算符号和构造方法
使用对象
避免使用空对象,不要让空对象去访问变量或方法
对象的引用和实体
对象本身存放着引用,自己可以操作分配自己的变量,调用类提供的方法分配给对象的变量称作对象的实体
两个类型相同的对象,如果二者的引用相同,那么二者就具有完全相同的实体。
类与程序的基本结构
将应用程序涉及的Java源文件保存在相同的目录下,分别编译
运行主类
参数传值
传值机制:方法中参数变量的值是调用者制定的值的拷贝
基本数据类型参数的传值:向该参数传递的值得级别不可以高于该参数的级别
引用类型参数的传值:类型相同两个数组,一旦引用相同,就有一样的单元,一样的实体。
可变参数:在声明方法时不给出参数列表中从某项开始直至最后一项的名字和个数。
对象的组合
组合和复用:“黑盒”复用,当前对象随时可以更换所包含的内容,属于弱耦合关系。
实例成员与类成员
实例变量和类变量的声明:static 修饰的是类变量,没有static修饰的是实例变量。
实例变量和类变量的区别:
(1)不同对象的实例变量互不相同
(2)所有对象共享类变量
(3)通过类名直接访问类变量,实例变量不能用类名访问,只能用对象访问
实例方法和类方法的定义:static区分
实例方法和类方法的区别:
(1)对象调用实例方法,只能对象来调用,实例方法可以操作实例成类变量。
(2)类名调用类方法,对象也能调用,类方法只能操作类变量
(3)设计类方法的原则:算法不需要操作成员变量,就可以考虑将这样的算法写成类方法。
方法重载
一个类中可以有多个方法具有相同的名字,但这些方法的参数必须相同
避免重载出现歧义:重载方法之间必须保证相互的参数不同。
this关键字
this可以出现在实例方法和构造方法中,但不可以出现在类方法中
在构造方法中使用this:代表使用该构造方法所创建的对象
在实例方法中使用this:只能通过对象来调用,代表正在调用该方法的对象。
包
包语句: package
有包名的类的存储目录:例:package tom.package ---->c:\1000\tom\jiafei
运行有包名的主类:例:java tom.jiafei.主类名
import语句
引入类库中的类:import语句,可以有多个import语句,必须写在package语句和源文件中类的定义之间
引入自定义包中的类
访问权限
访问权限指对象是否可以通过“.”运算符来操作自己的变量或通过“.”运算符调用类中的方法。
私有变量和私有方法:用关键字private修饰,如果类中的某个成员是私有类变量或方法,那么在另外一个类中,不能通过此类名来操作这个私有类变量或类方法。
共有变量和共有方法:public修饰,如果类中的某个成员是public类变量或方法,那么在另外一个类中,能通过此类名来操作这个私有类变量或类方法。
友好变量和友好方法:不用private,public,protected修饰的变量和方法。如果类中创建了一个对象,若在同一个包中,那么在另外一个类中,能通过此类名来操作这个私有类变量或类方法。
受保护的成员变量和方法:用protected来修饰
public类与友好类
基本类型的类封装
Java提供与基本数据类型相关的类,实现了对基本数据类型的封装。
对象数组
数组的元素是对象
Student [] stu;
stu=new Student[10];
JRE扩展和jar语句
创建一个jar文件:jar cfm Jerry.jar hello.mf moon\star\TestOne.class moon\star\TestTwo.class
放入扩展中
代码调试中的问题和解决过程
- 问题1:
- 问题1解决方案:
- 在写类名时,错误的加上了空格,导致错误。
- 在定义s时,String S写成了大写
问题2:
问题2解决方案:在Ladder.java中将above,bottom,height错误定义成float形式。
问题3:
问题3解决方案:在此问题中,虽然错误标识指向100,但其实是;误写为中文中的符号。在对这一行仔细检查之后发现。
问题4:
问题4解决方案:在此问题中,应引入的是Date类,输入错误导致。
问题5:
问题5解决方案:
- suhu.com文件没有放在同一个文件里,导致文件搜索不到。
- getAge写成setAge导致没有输出,错误!
代码托管
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 37/37 | 1/1 | 10/10 | |
第二周 | 399/436 | 1/2 | 12/22 | |
第三周 | 764/1163 | 1/3 | 18/40 |
20165211 2017-2018-2 《Java程序设计》第3周学习总结的更多相关文章
- 学号 20175212 《Java程序设计》第九周学习总结
学号 20175212 <Java程序设计>第九周学习总结 教材学习内容总结 一.MySQL数据库管理系统 1.在官网上下载并安装MySQL 2.在IDEA中输入测试代码Connectio ...
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
- 20145213《Java程序设计》第二周学习总结
20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...
- 20145213《Java程序设计》第一周学习总结
20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...
- 21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
- 20145330孙文馨 《Java程序设计》第一周学习总结
20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...
- 20145337 《Java程序设计》第九周学习总结
20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...
- 20145337 《Java程序设计》第二周学习总结
20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...
- 20145218《Java程序设计》第一周学习总结
20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...
- 《Java程序设计》第九周学习总结
20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...
随机推荐
- 完整的Jquery-easyUI显示分页数据例子
虽然说是入门的例子,但本人尽量做的详细点,以后会继续更新,部分功能 此外,为了后继easyui的学习,做了一个简单的框架:后台采用hibernate2.5+struts2开发:数据库用mysql.红色 ...
- asm 32 /64
我使用NASM编写的,运行在32位windows和linux主机上,但后来需求增加了,需要在64位windows和linux上运行,windows自身有个wow(windows on windows) ...
- CSV文件插入到mysql表中指定列
参考资料: -CSV文件插入到mysql表中指定列
- Kafka性能
基准测试Apache Kafka:每秒写入2百万(在三台便宜的机器上) 核心的数据枢纽一定是高效的,可预测的,并且容易扩展.Kafka能够做到在普通的硬件上支撑每秒百万次写入. Kafka的数据模型非 ...
- atitit. orm框架的hibernate 使用SQLQuery createSQLQuery addEntity
atitit. orm框架的hibernate 使用SQLQuery createSQLQuery addEntity 1. addEntity 对原生SQL查询运行的控制是通过SQLQuery接口进 ...
- beginAppearanceTransition
- (void)beginAppearanceTransition:(BOOL)isAppearing animated:(BOOL)animated __OSX_AVAILABLE_STARTING ...
- utf8 与 utf-8区别
在使用中常常遇到 utf-8 和 utf8,现在终于弄明白他们的使用不同之处了,现在来和大家分享一下,下面我们看一下 utf8 和 UTF-8 有什么区别. "UTF-8" 是标准 ...
- latex 安装和使用
1:下载 texlivewindows 版 http://tug.org/texlive/acquire-netinstall.html 2:双击exe文件进行安装,安装时选择 将路径添加到环境变量 ...
- kernel下nand flash的文件系统总结
1.FLASH转换层(FTL) EXt2/EXT3/EXT4文件系统可以通过FTL实现对flash的支持,因为FTL可以将闪存flash模拟成磁盘结构. 在ext2文件系统的基础上上,为了保证数据的一 ...
- 用setup.py安装第三方包packages
这次要说的是用setup.py 来安装第三方包.步骤如下: 步骤:setup.py 先下载你要安装的包,并解压到磁盘下: 进入到该文件的setup.py 目录下 ,打开cmd,并切换到该目录下: 先执 ...