目录
①属性(field 成员变量),用于定义该类或该类对象包含的数据或者说静态特征。
一、 表格结构和类结构(掌握)
- 表结构对应:类结构
- 一行数据对应:一个对象
- 表中所有数据对应:这个类的所有对象
二、面向过程和面向对象思想(掌握)
面向过程和面向对象都是对软件分析、设计和开发的一种思想,它指导着人们以不同的 方式去分析、设计和开发软件。两者都贯穿于软件分析、设计和开发各个阶段,对应面向对象就分别称为面向对象分析 (OOA)、面向对象设计(OOD)和面向对象编程(OOP)。
面向过程思想思考问题时,我们首先思考“怎么按步骤实现?”并将步骤对应成方法, 一步一步,最终完成。 这个适合简单任务,不需要过多协作的情况下。面向对象(Oriented-Object)思想更契合人的思维模式。我们首先思考的是“怎么设计 这个事物?”
面向对象可以帮助我们从宏观上把握、从整体上分析整个系统。 但是,具体到 实现部分的微观操作(就是一个个方法),仍然需要面向过程的思路去处理。他们是相辅相成的。面向对象离不开面 向过程!
面向对象和面向过程思想的总结
- 都是解决问题的思维方式,都是代码组织的方式。
- 面向过程是一种“执行者思维”,解决简单问题可以使用面向过程。
- 面向对象是一种“设计者思维”,解决复杂、需要协作的问题可以使用面向对象。
- 面向对象离不开面向过程: 宏观上:通过面向对象进行整体设计 ;微观上:执行和处理数据,仍然是面向过程
三、对象和类的详解(掌握)
(一)类和对象的概念
类可以看做是一个模版,或者图纸,系统根据类的定义来造出对象。我们要造一个汽车, 怎么样造?类就是这个图纸,规定了汽车的详细信息,然后根据图纸将汽车造出来。
类:我们叫做 class。 对象:我们叫做 Object,instance(实例)。以后我们说某个类的对象,某个类的实例。是一样的意思。
总结
- 类可以看成一类对象的模板,对象可以看成该类的一个具体实例。
- 类是用于描述同一类型的对象的一个抽象概念,类中定义了这一类对象所应具有的共 同的属性、方法。
(二)类的定义
①属性(field 成员变量),用于定义该类或该类对象包含的数据或者说静态特征。
属性作用范围是整个类体。 在定义成员变量时可以对其初始化,如果不对其初始化,Java 使用默认的值对其初始化。
数据类型 | 默认值 |
整型 | 0 |
浮点型 | 0.0 |
字符型 | ’\u0000‘ |
布尔型 | false |
所有引用类型 | null |
属性定义格式:[修饰符] 属性类型 属性名 = [默认值] ;
②方法 ,用于定义该类或该类实例的行为特征和功能实现。
方法是类和对象行为特征的抽 象。方法很类似于面向过程中的函数。面向过程中,函数是最基本单位,整个程序由一个个函数调用组成。面向对象中,整个程序的基本单位是类,方法是从属于类和对象的。
方法定义格式:
[修饰符] 方法返回值类型 方法名(形参列表) {
// n 条语句
}
对于一个 类来说,一般有三种常见的成员:属性 field、方法 method、构造器 constructor。这三 种成员都可以定义零个或多个。
测试:
public class test12 {
//属性,未赋值,则默认初始化值
int a;
int b;
String c;
//方法
void d(){
System.out.println("学习第五天了也!!!");
}
//构造方法,方法名必须和类名一致
test12(){
}
public static void main(String[] args) {
test12 h = new test12();
System.out.println(h.a);
h.a = 1314;//在h
h.b = 123;
h.c = "啊这";
System.out.println(h.a);
System.out.println(h.b);
System.out.println(h.c);
h.d();
System.out.println("===========");
test12 y = new test12();
y.a = 521;
y.b = 321;
y.c = "不不不";
System.out.println(y.a);
System.out.println(y.b);
System.out.println(y.c);
}
简单的内存图:
四、构造方法(构造器 constructor)(掌握)
(一)构造方法基础用法
构造器也叫构造方法(constructor),用于对象的初始化。构造器是一个创建对象时被 自动调用的特殊方法,目的是对象的初始化。构造器的名称应与类的名称一致。Java 通过 new 关键字来调用构造器,从而返回该类的实例,是一种特殊的方法。
声明格式:
[修饰符] 类名(形参列表){
//n 条语句
}
构造器 4 个要点:
- 构造器通过 new 关键字调用!!
- 构造器虽然有返回值,但是不能定义返回值类型(返回值的类型肯定是本类),不能在构造器里使用 return 返回某个值。
- 如果我们没有定义构造器,则编译器会自动定义一个无参的构造方法。如果已定义 则编译器不会自动添加!
- 构造器的方法名必须和类名一致!
测试:
//定义一个“点”(Point)类用来表示二维空间中的点(有两个坐标)。
class point {
double x, y;
public point(double _x, double _y) {
x = _x;
y = _y;
}
public double getDistance(point p){
return Math.sqrt((x - p.x)*(x-p.x)+(y-p.y)*(y-p.y));
//计算两坐标点间距离
}
}
public class test15 {
public static void main(String[] args) {
point p = new point(3.0,4.0);//坐标P(3,4)
point origin = new point(0.0,0.0);//坐标(0,0)
System.out.println(p.getDistance(origin));//调用方法
}
}
调用方法的简图:
(二)构造方法的重载
构造方法也是方法,只不过有特殊的作用而已。与普通方法一样,构造方法也可以重载。
测试:
//创建用户的程序
public class test16 {//属性
int id;
String sname;
int password;
test16(){
}
//构造器的重载
test16(int id,String sname,int password) {
this.id = id;//如果方法构造中形参名与属性名相同时,需要使用 this 关键字区分属性与形参
this.sname = sname;//this.id表示属性id;id表示形参id
this.password = password;
System.out.println("你的账号是"+id+",你的名字为"+sname+",你的密码为"+ password);
}
public static void main(String[] args) {
test16 f = new test16(111,"dean",123456789);
}
}