20145239杜文超 《Java程序设计》第3周学习总结
20145239 《Java程序设计》第3周学习总结
教材学习内容总结
一、第四章:
(1)对象和类:
使用Java撰写程序几乎都在使用对象,要产生对象必须先定义类,类是对象的设计图,对象是类的实例。定义类时用关键词class,利用类建立对象实例用new关键词。
class Clothes{
String color;
char size;
}
public class ClassObject {
public static void main(String[] args){
Clothes sun=new Clothes();
Clothes spring=new Clothes(); sun.color="red";
sun.size='S';
spring.color="green";
spring.size='M';
System.out.printf("sun(%s,%c)%n", sun.color,sun.size);
System.out.printf("spring(%s,%c)%n", spring.color,spring.size);
}
}
(2)使用标准类:
java.util.Scanner会帮你扫描标准输入。
java.math.BigDecimal会以默认精度进行计算,防止浮点数运算错误的情况。
import java.util.Scanner; public class Guess
{
public static void main (String[] args)
{
Scanner scanner = new Scanner(System.in);
int number = (int) (Math.random() * 10);
int guess; do
{
System.out.print("猜数字(0~9):");
guess = scanner.nextInt();
}
while (guess != number); System .out.println("bingo!!");
}
}
(3)基本类型打包器:
Long、Integer、Double、Float、Boolean等,就是所谓的打包器。其主要目的是提供对象实例作为“壳”,将基本类型打包在对象之中,就可以将基本类型当作对象操作。
public class Integer
{
public static void main (String[] args)
{
int data1 = 10;
int data2 = 20;
Integer wrapper1 = new Integer(data1);
Integer wrapper2 = new Integer(data2);
System.out.println(data1/3);
System.out.println(wrapper1.doubleValue()/3);
System.out.println(wrapper1.compareTo(wrapper2));
} }
(4)数组对象:
数组在Java中就是一个对象。声明一维数组用int[],二维用int[][]。
public class Score
{
public static void main (String[] args)
{
int[] scores ={88,81,74,78,76,77,85,95,93};
for(int i = 0;i < scores.length;i++)
{
System.out.printf("学生分数:%d %n",scores[i]);
}
}
}
(5)字符串对象:
字符串本质是打包字符数组的对象。
import java.util.Scanner; public class Sum
{
public static void main(String[] args)
{
Scanner scanner = new Scanner(System.in);
long sum = 0;
long number = 0;
do
{
System.out.print("输入数字:");
number = Long.parseLong(scanner.nextLine());
sum += number;
}
while(number != 0);
System.out.println("sum:"+sum);
}
}
二、第五章:
- 构造函数实现对象初始化流程的封装。封装的主要目的就是隐藏对象细节,将对象当做黑箱进行操作。
- 创建对象时,数据成员会初始化,如果没有指定初始值,则会使用默认值初始化。
- 定义类时如果没有构造任何函数,编译程序会自动加入一个无参数、内容为空的构造函数,成为默认构造函数。
- 被声明为static 的成员,不会让各别对象拥有,而是属于类。
- 如果局部变量声明了final,表示设值后就不能再变动。
教材学习中的问题和解决过程
本周的学习在阅读教材的过程中遇到了大量问题,很多关键词都不熟悉含义。看了教学视频以后部分有了一定认识,但还遗留了许多问题。
比如深层复制和浅层复制的区别,为此我查了百度,得知:
- Java对象的深层复制是指Java对象A本身被clone成新对象B,同时A的属性也是被clone成新对象,赋值到A的各个属性上去,A与B的相同属性都引用到不同的对象;
- Java对象的浅层复制是指Java对象A本身被clone成新对象B,但A的属性没有被clone处理,只是把A的各个属性所指的对象赋值到B对应的属性上,A与B的相同属性都引用到同一个对象。
- 我们一般使用到对象复制是对象浅层复制,也就是没有复制属性成新的属性。
具体例子可以看这篇博客:http://xiemingmei.iteye.com/blog/1076159
代码调试中的问题和解决过程
按照要求附图代码托管的情况如下:
在运行数组部分的代码时出行了如下错误:
错误原因:课本上的printf写成了println,可为什么会这样呢?
解决方法:可以参考卢肖明同学的文章:http://group.cnblogs.com/topic/73988.html
其他(感悟、思考等,可选)
Java是面向对象的一种语言,和C语言有很大不同。但我始终搞不清楚到底什么是面向对象,看了毕向东老师的教学视频后他举得一个例子让我开始有点概念。他说如果你要去买电脑但是你不懂CPU、显卡等电脑的配置,但是毕老师懂,你去拜托他帮你买,这时候毕老师就成了你的对象,不用懂电脑配置的细节,你只需要指示毕老师去买就行了,因为具体的操作毕老师懂。本周Java的学习内容很繁重,难度一下子提升了一个档次,所以很多时候要把这些抽象的问题具体化,想象成生活中的一些实例,这样才能方便理解。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 100/100 | 1/2 | 15/15 | |
第二周 | 200/300 | 1/2 | 12/15 | |
第三周 | 300/300 | 1/2 | 20/20 | 认识了面对对象的含义 |
参考资料
20145239杜文超 《Java程序设计》第3周学习总结的更多相关文章
- 《Java程序设计》第二周学习总结
20145224陈颢文<Java程序设计>第二周学习总结 教材学习内容总结 一.类型.变量与运算符 1.类型 整数: 可细分为为short整数(占2字节),int整数(占4字节),long ...
- 20145239杜文超《网络对抗》- Web安全基础实践
20145239杜文超<网络对抗>- Web安全基础实践 基础问题回答 (1)SQL注入攻击原理,如何防御? SQL注入攻击就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查 ...
- 20145239杜文超《网络对抗》- Web基础
20145239杜文超<网络对抗>- Web基础 基础问题回答 1.什么是表单? 表单是一个包含表单元素的区域. 表单元素是允许用户在表单中(比如:文本域.下拉列表.单选框.复选框等等)输 ...
- 20145239杜文超《网络攻防》- MSF基础应用
20145239杜文超<网络攻防>- MSF基础应用 基础问题回答 1.用自己的话解释什么是exploit,payload,encode? exploit:实现攻击行为的主体,但没有载荷只 ...
- 20145239杜文超《网络对抗》- shellcode注入&Return-to-libc攻击深入
20145239杜文超<网络对抗>- shellcode注入&Return-to-libc攻击深入 shellcode基础知识 Shellcode是一段代码,作为数据发送给受攻击服 ...
- 20145239 杜文超 实验四 Android开发基础
20145239实验四 Android开发基础 实验内容 基于Android Studio开发简单的Android应用并部署测试 了解Android组件.布局管理器的使用 掌握Android中事件处理 ...
- 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可以 ...
随机推荐
- Linux 线程浅析
进程和线程的区别与联系 在许多经典的操作系统教科书中,总是把进程定义为程序的执行实例,它并不执行什么, 只是维护应用程序所需的各种资源,而线程则是真正的执行实体. 为了让进程完成一定的工作,进程必须至 ...
- bit、位、byte、字节、B、KB、字符与网速
一.存储单位bit和Byte 1.bit(比特) bit就是位,也叫比特位,是数据存储的最小单位.简写为小写字母“b” 二进制的一位,每个0或1是一个bit 2.Byte(字节) Byte是字节,也有 ...
- java中日期格式的转换和应用
java中主要有3个类用于日期格式转换 DateFormat .SimpleDateFormat.Calendar SimpleDateFormat函数的继承关系: java.lang.Obje ...
- (九)jQuery中的动画(载)
原文链接:http://blog.csdn.net/zfy865628361/article/details/50358367 首先,用jQuery做动画效果要求在标准模式下,否则可能会引起动画抖动. ...
- PCA的数学原理Matlab演示
关于 PCA(Principal component analysis)主成分分析.是SVD(Singular value decomposition)神秘值分析的一种特殊情况.主要用于数据降维.特征 ...
- android 怎样单独下载一个项目
起因,"网络"不太好."比方铁通的就是不如联通的" 每次运行一边repo sync,十分蛋疼,假设不做full build无需所有下载,着急看某个项目的修改但是 ...
- [技术讨论]关于前几天公布的京东bug上的问题分析
1. 起因 前两天我公布了一个京东微信端截取到的三张图.并简单阐述了这三张图中的bug发现过程: 有朋友的评价是图中这种,可实际上.他应该是没有看出来这个bug代表的内容有多少.今天心血来潮决定具体 ...
- mysql 查排名
SET @amount=0; SET @rank=1; SET @shunxu=0; SELECT tmp2.id AS id,tmp2.name AS NAME,tmp2.amount AS ...
- JVM、垃圾回收、内存调优、常见參数
一.什么是JVM JVM是Java Virtual Machine(Java虚拟机)的缩写.JVM是一种用于计算设备的规范.它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现 ...
- 如何利用hibernate3解决数据库丢失更新问题?
首先我们要明白什么叫丢失更新. 比如数据库有一个person表,里面有一条这样的数据 "5 zhangsan shenzhen"; 现在有两个事务A.B同时查找了这一条记录: A事 ...