达内---------面向对象基础

诶-_-|||很悲剧的感冒了........难受........今天早点睡了...............

**********************************我是万恶的分隔线*************************************

只有引用类型在不定义数值的情况下为空

面向过程的编程思想

面向对象的编程思想

师法自然

一切皆是对象,按照类别分类(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) 五子棋继续完成.

判定胜利的算法:

落子后,判定横向的算法:

先找出左边第一个不是该颜色的坐标,再找出右边第一个不是该颜色的坐标

你可能感兴趣的:(编程,算法)