20165324 《Java程序设计》第3周学习总结
20165324 《Java程序设计》第3周学习总结
教材学习内容总结
本周学习内容如下:
- 编程语言思想
- 面向过程语言的核心是编写解决某个问题的代码块;在面向对象语言中,最核心的内容是对象,一切围绕对象。
2.面对对象编程的核心思想之一:将数据和对数据的操作封装在一起。通过抽象,形成一般概念。
- 类的定义:包括;类声明和类体,格式为:
class 类名{
类体的内容
}
//class是关键字,用来定义类。
类的目的是抽象出一类事物共有的属性和行为(与C语言的结构体相似)。类体的内容由变量的声明和方法的定义组成。
- 方法的定义:包含方法头和方法体。格式为:
方法头 {
方法体的内容
}
//方法头由方法的类型、名称、和小括号里的参数列表所构成(与C语言中的函数相似)
- 成员变量与局部变量:有效性的不同;关键字this的使用;局部变量必须保证有默认值,否则无法通过编译。
- 类的UML圈:三层描述类的主要构成:
- 第一层:名字层
- 第二层:变量层
- 第三层:方法层
- 构造方法是类中的一种特殊方法,保证方法名与类名一致,而且无类型。
-. 创建对象:包含对象的声明、为对象分配变量。(与C语言结构体相似)分配对象使用new运算符和类的构造方法即可。如:
// 书本p62
XiyoujiRenwu zhubajie;//声明对象
zhubajie=new XiyoujiRenwu();//为对象分配变量
//等价于:
XiyoujiRenwu zhubajie=XiyoujiRenwu();//声明对象的同时为对象分配变量
对象的组合和复用
构造方法:
- 作用:在创建对象时,给对象各个字段赋值
- 特点:构造方法的方法名与类名一致;构造方法没有返回值,也没有返回值类型;构造方法可以通过参数来接受数据;在没有显示定义构造方法之前,系统有一个默认的无参构造方法,当显示定义了构造方法之后,系统默认的无参构造方法就没有了;构造方法可以实现方法重载;构造方法在创建对象时,跟在new运算符后面,由系统调用。
实例方法与类方法定义:实例方法类型前面不加任何关键字。
this的使用:
this.x
表示当前对象的变量x。包的使用和import语句的使用
代码托管
ps:有个疑问,我明明今天没有上传代码,为什么today代码有一千多行,会不会是因为我有时会把本地文件全删完,然后从码云上下载导致的呢?
学习问题
问题1:对于对象的组合的理解
问题1解决方法: Circular类创建圆锥对象,将Circle类声明的对象作为自己的一个成员,只能这样写
Circle bottom;
,并且还需要设置bottom为一个Circle对象才能使用代码为:
void setBottom (Circle c) {
bottom=c;
}
感觉这一步是多余的,我注释了以后,程序也能运行.....
看了下第五章知识,这一行有其他用处,疑问解决。
问题2:调用方法,输出不了结果?
-问题2解决方法:调用的输出方法,返回的值必须System.out.println();
才会输出显示在屏幕上。
- 问题3:对例子8的学习反省
代码如下:
//Circle类定义圆的半径、面积、半径读取的方法,返回半径的方法、圆的面积求解的方法。
public class Circle {
double radius,area;
void setRadius(double r){
radius =r;
}
double getRadius(){
return radius;
}
double getArea() {
area=3.14*radius*radius;
return area;
}
}
/*Circular类定义了圆锥的底、高,因为底为一个圆,进而调用了Circle类声明了底bottom为一个Circle对象,即bottom可以调用Circle类中的方法,
还定义了读取高的方法、圆锥体积的求解方法、圆锥的底的半径的读取方法、返回了圆锥的底的半径的方法。*/
public class Circular{
Circle bottom;
double height;
void setBottom(Circle c) { //设置圆锥的底为一个Circle对象
bottom=c;
}
void setHeight(double h){
height=h;
}
double getVolme(){
if (bottom==null)
{
return -1;
}
else {
return bottom.getArea()*height/3.0;
}
}
double getBottomRadius() {
return bottom.getRadius();
}
public void setBottomRadius(double r){
bottom.setRadius(r);
}
}
//Dome06为主类,定义了main方法。
public class Dome06{
public static void main(String[] args) {
Circle circle=new Circle(); //创建了circle的一个对象
circle.setRadius(10); //circle的半径为10
Circular circular=new Circular(); //创建了Circular的一个对象
System.out.println("circle的引用:"+circle);
System.out.println("圆锥的bottom的引用:"+circular.bottom);
circular.setHeight(5); //circular对象的高为5
circular.setBottom(circle); //将circle对象的引用传递给circular对象的bottom,原本的bottom为null
System.out.println("circle的引用:"+circle);
System.out.println("圆锥的bottom的引用:"+circular.bottom);
System.out.println("圆锥的体积:"+circular.getVolme());
System.out.println("修改circle的半径,bottom的半径同样变化");
circle.setRadius(20);
System.out.println("bottom的半径:"+circular.getBottomRadius());
System.out.println("重新创建circle,circle的引用将发生变化");
circle=new Circle();
System.out.println("circle的引用:"+circle);
System.out.println("但是不影响circular的bottom的引用");
System.out.println("圆锥的bottom的引用:"+circular.bottom);
}
}
- 问题3解决方法:注释如上↑
查阅博客得知
对象的组合
- 关联关系:如果A类中的成员变量是用B类声明的对象,那么A和B的关系是关联关系,称A类的对象关联于B类的对象或A类的对象组合了B类的对象。
- 依赖关系:如果A类中某个方法的参数是用B类声明的对象或某个方法返回的数据类型是B类对象,那么A和B的关系是依赖关系,称A依赖于B。
考试错题总结:
- 表达式-2>>1的值为:-1。“>>”为带符号右移
- 表达式-2>>>1的值为:2^31-1。“>>>”为无符号右移
while(i-->0)
会对i的值产生影响- y=x++:表示先赋值,然后加一;y=++X;表示先加一然后赋值。
- byte为一个字节,占8个bit位。
- char类型不可以使用双引号;不可以将多个字符赋给char型变量;\u前缀表示时,必须为十六进制。
- 复制数组的方法有:用循环语句逐个复制数组元素;用arraycopy()方法;用clone方法。
- java字符串:
"\"\""
"Oxzabc"
"\t\t\r\n"
- boolean 只能定义true或者false。
博客学习(侵删)
Linux下为UTF-8编码,Windows下为GBK编码,Linux中javac编译gbk编码的java文件时,容易出现“错误: 编码UTF8的不可映射字符”。现在可以用命令
javac -encoding gbk *.java
编译成功。成员变量可细分为实例变量和类变量,在声明成员变量时用关键词static给予修饰的称作类变量,否则称为实例变量。
- 不同对象的实例变量互不相同(占不同内存)
- 所有对象共享类变量(占相同内存)
- 通过类名直接访问类变量
- 方法也可分为实例方法和类方法(静态方法)
- 对象调用实例方法(实例方法的入口地址被所有对象共享),不能被类名调用
- 类名调用类方法(不可以操作实例变量)
- 设计类方法的原则:不必创建对象就可以用类名直接调用它
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 203/203 | 4/4 | 15/15 | |
第二周 | 326/529 | 2/6 | 12/27 | |
第三周 | 1000/1500 | 2/8 | 20/47 |
参考资料
20165324 《Java程序设计》第3周学习总结的更多相关文章
- 20165324 《Java程序设计》第九周学习总结
学号 20165324 <Java程序设计>第九周学习总结 教材学习内容总结 第十三章 Java网络编程 URL类 使用URL创建对象的应用程序称为客户端 一个URL对象封装一个具体资源的 ...
- 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入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...
随机推荐
- 关于VS2013编辑器的问题
如果输出报错 This function or variable may be unsafe. 解决方法 1.用VS2013打开出现错误的代码文件 2.在工程文件名处右击鼠标打开快捷菜单,找到“属性” ...
- sublime text 2自定义代码片段
本文引用 http://www.blogjava.net/Hafeyang/archive/2012/08/17/how_to_create_code_snippet_in_subline_tex ...
- 将数据写入TXT文件中,file_put_contents与fwrite
<?php header("content-type:text/html;charset=utf-8"); $file = './aa.txt'; ###判断是不是文件 if ...
- 显示图片中CDC和HDC问题
(m_Pic.LoadPictureData(pBuffer, nSize));//接作调用函数读pBuffer的jpg数据准备显示 showimage();//显示图片 void Caccess_t ...
- BEGIN_MESSAGE_MAP(Caccess_test_1Dlg, CDialogEx)
BEGIN_MESSAGE_MAP(...消息映射宏的一部分.ON_WM_CREATE()产生一个消息处理函数映射项目,把WM_CREATE和OnCreate函数联系起来. 参数的个数和类型是系统已经 ...
- hdu 4003(树形dp)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4003 思路:dp[i][j]表示以i为根选择j个机器人的最小花费,然后就是背包了:dp[u][i]=m ...
- 编程之美 set 16 拈游戏分析(1)
题目 N 个石头排成一行, 每块石头有固定的位置和编号, 两个玩家依次取石头, 每个玩家可以取其中的任一块石头, 或者相邻的两个石头. 石头在游戏过程中不能移位, 最后将剩下的石头依次取光的玩家获胜 ...
- SQL Server计算列
计算列由可以使用同一表中的其他列的表达式计算得来.表达式可以是非计算列的列名.常量.函数,也可以是用一个或多个运算符连接的上述元素的任意组合.表达式不能为子查询. 例如,在 AdventureWork ...
- DNS rebinging攻击方式
一.什么是DNS rebinding? 在dns协议中,请求和响应完成一台机器对一个域名的查询,响应信息包含请求域名站点对应的IP地址.假设你向DNS服务器A请求域名youself.domain.co ...
- uid-datepicker
$("#txtPODate").daterangepicker({singleDatePicker: true,showDropdowns: true,minDate:'01/01 ...