SC课堂笔记
2018-03-14 08:33
169 查看
3-1
抽象数据类型的好处:将存储和操作分开。
写程序的时候要符合变量命名要求
String a="ssd";
String b=a;b并没有获得a的引用,所以a和b是独立的.
java实现层次性的方式:继承 实现
Boxed primitives: Boolean,Integer。。。。万不得已不要用
java有操作符类型的重载,如两个字符串相加,但是不允许用户定义操作符重载.
类型检查:java在编译阶段就开始进行类型检查.
1.静态检查
2.动态检查
另一个不可变性:final,final指的是变量的值不可改变,或者引用不可改变,这就意味着例如List的添加操作这种不会改变引用的操作是可以进行的.final int n=5;
n=6;//错误
final List a=[1,2];
final List b=[2,3];
a=b;//错误
a.add(3);//正确对final总结:{
final 修饰方法,方法不可以被重写
final修饰类,类不能被继承
final修饰的成员变量在构造函数中可以改变
}
snapshot diagram
immutable传递变量的时候传递的是值,而mutable传递的是引用。为了安全要尽量多用immutable。
集合框架存储的是对象数据类型
null不允许赋值给基本数据类型,可以给对象数据类型
尽量不用null
Map的get()失败的时候返回null
3-2 规约
precondition 前置条件 postcondition 后置条件
public class Hailstone {
/**
* Compute a hailstone sequence.
* @param n Starting number for sequence. Assumes n > 0.
* @return hailstone sequence starting with n and ending with 1.
*/
public static List<Integer> hailstoneSequence(int n) {
List<Integer> list = new ArrayList<Integer>();
while (n != 1) {
list.add(n);
if (n % 2 == 0) {
n = n / 2;
} else {
n = 3 * n + 1;
}
}
list.add(n);
return list;
}
}`
抽象数据类型的好处:将存储和操作分开。
写程序的时候要符合变量命名要求
数据类型对比
String a="ssd";
String b=a;b并没有获得a的引用,所以a和b是独立的.
java实现层次性的方式:继承 实现
Boxed primitives: Boolean,Integer。。。。万不得已不要用
java有操作符类型的重载,如两个字符串相加,但是不允许用户定义操作符重载.
类型检查:java在编译阶段就开始进行类型检查.
1.静态检查
2.动态检查
另一个不可变性:final,final指的是变量的值不可改变,或者引用不可改变,这就意味着例如List的添加操作这种不会改变引用的操作是可以进行的.final int n=5;
n=6;//错误
final List a=[1,2];
final List b=[2,3];
a=b;//错误
a.add(3);//正确对final总结:{
final 修饰方法,方法不可以被重写
final修饰类,类不能被继承
final修饰的成员变量在构造函数中可以改变
}
snapshot diagram
immutable传递变量的时候传递的是值,而mutable传递的是引用。为了安全要尽量多用immutable。
集合框架存储的是对象数据类型
null不允许赋值给基本数据类型,可以给对象数据类型
尽量不用null
Map的get()失败的时候返回null
3-2 规约
precondition 前置条件 postcondition 后置条件
public class Hailstone {
/**
* Compute a hailstone sequence.
* @param n Starting number for sequence. Assumes n > 0.
* @return hailstone sequence starting with n and ending with 1.
*/
public static List<Integer> hailstoneSequence(int n) {
List<Integer> list = new ArrayList<Integer>();
while (n != 1) {
list.add(n);
if (n % 2 == 0) {
n = n / 2;
} else {
n = 3 * n + 1;
}
}
list.add(n);
return list;
}
}`
相关文章推荐
- 软件构造 课堂笔记1
- 【课堂笔记】C语言基础与提高3
- java--重写 final (课堂笔记)
- 计算原理课堂笔记(二)
- 网络完全课堂笔记
- 2018.3.8课堂笔记
- “精灵学院”课堂笔记2——针对企业的DevOps改进和实践(下)
- 课堂笔记2(乱)
- 如何打造高颜值PPT——小鱼儿何艳老师ppt课-课堂笔记
- 2011-10-20课堂笔记
- 2018.3.9课堂笔记
- 机器学习-凸优化理论-课堂笔记
- [课堂笔记]三.Java数组
- java第八次课堂笔记
- 课堂笔记_ B样条曲线和NUBRS
- 尚学堂Oracle 课堂笔记(收藏)
- Jmeter课堂笔记之控制器及函数的使用
- 百度前端课堂笔记3
- 堆与栈的解析-以数组为例,解析数组在内存中的分布(JAVA基础-课堂笔记)
- 课堂笔记(六)