诶-_-|||很悲剧的感冒了........难受........今天早点睡了...............
**********************************我是万恶的分隔线*************************************
只有引用类型在不定义数值的情况下为空
面向过程的编程思想
面向对象的编程思想
师法自然
一切皆是对象,按照类别分类(class)
对象:客观世界的每一个事物
类:把同一类别的对象归纳总结成类,是概念上的,客观世界中找不到具体的类.
属性:记录了事物的特征(状态),如:学号/姓名/班级/年龄(特征)
方法:记录了事物的行为,如:考试/学习(行为)
类的语法:
package xx.xx; //0-1句
import xx.xx; //0-n句
[修饰符] class 类名{ }
在类的{ }中,可以写属性/方法/构造,不能直接写语句
属性语法:
[修饰符] 属性类型 属性名 [=初始值];
属性如果不赋值,有系统默认值(与数组元素一样),属性必须直接定义在类体的{}中
写代码时需要写类,用代码用对象,构造用于创造某个类的对象,每个类都有构造,如果程序员不写构造,系统会提供一个默认无参的构造.如果程序员写了,系统不会提供.
构造语法:
[修饰符] 类名(参数列表) [throws XXException]{}
构造没有返回说法,名字必须是类名.
方法语法:
[修饰符] 返回类型 方法名(参数列表) [throws XXException]{ }
方法如果有返回值的话,必须用return语句.
用面向对象的思想写一个学生类
学生{
特征:id/name/age/sex
行为:study/eat
构造两个:无参/四个参数(与特征对应)
}
写一个产品类Product
特征:产品编号/名称/价格/产地
行为:定价/显示产品信息
构造:无参/有参
然后写一个TestProduct类,调用测试.
this用法:
this代表本类的一个对象,在方法中代表方法的调用者,在构造中代表即将构造的对象.
this.调本类的属性和方法,如果没有重名时,可以省略this.
this()调本类的构造,一般少参的调多参的,必须出现在本类构造的第一行
this不能出现在static部分.
变量和变量的作用范围
属性:
类变量 直接定义在类体{}中,有static修饰,作用范围为本类所有地方
成员变量 直接定义在类体{}中,没有static修饰, 作用范围为本类所有非static地方
局部变量: 定义在其他位置,作用范围:看定义所在的{}
程序是从主方法开始顺序执行的,即在非主方法中的次序可以随意调用
属性的封装
有些属性不能直接赋值,直接赋值会导致非常错误的属性值.
封装步骤:
1. private 修饰属性,隐藏属性
2. 提供操作属性的方法,一般是读/写方法(getXX/setXX)
3. 在构造中,调用set方法操作属性,不要直接赋值.
作业:
1. 今天代码和概念理一下.首要的是代码!
2. 编程:
a) 写一个员工类,要求面向对象/封装.
i. 特征:编号/姓名/工资/入职时间
ii. 行为:加薪/辞职
iii. 构造:两个
iv. 考虑下入职时间如何解决?
b) 五子棋继续完成.
判定胜利的算法:为
落子后,判定横向的算法:
先找出左边第一个不是该颜色的坐标,再找出右边第一个不是该颜色的坐标