过程
面向过程的编程思想:以方法(函数)为基本元素,数据都是通过形参传入,方法通过形参接受实参,完成相关处理。
缺点:方法和传入的实参变量没有稳定的结合关系。
对象
类:面向对象的一个重要思想就是通过抽象得到类,即将数据和操作这些数据的方法封装在一个类中。抽象的内容有两个:一是成员变量,即数据;二是方法,即数据上的操作。
优点:成员方法处理的数据变量不是通过形参传入,而是直接访问类中的成员变量,增加了变量和处理这些变量的方法的黏性。
Java程序结构
类定义的语法格式:
一个Java应用程序可以有多个包,每个包中可以有多个Java源文件,
每个源文件可以有多个类,每个类编译后产生一个类的字节码文件。
一个Java应用程序至少有一个主类,每个Java源文件中都可以有一个主类。Java应用程序总是从主类的main方法开始执行。
//定义成员变量(属性)
访问控制符 [修饰符] class 类名标识符{
访问控制符 [修饰符] 数据类型 成员变量1;
访问控制符 [修饰符] 数据类型 成员变量2;
...
访问控制符 [修饰符] 数据类型 成员变量n;
//定义成员方法(行为)
访问控制符 [修饰符] 返回值的数据类型 方法名称(参数1,参数2...){
代码块
[return 返回值;]
}
}
/*传统的程序设计主要采用结构化的程序设计方法,也就是面向过程程序设计。*/
public class guocheng {
public static double getBoxVolume(double lenght,double width,double height){
return lenght*width*height;
}
public static void mian(String[] args){
double len,wid,hei;
len=10;wid=20;hei=30;
double volume=j42.getBoxVolume(len,wid,hei);
System.out.printf("长%.2f,宽%.2f,高.%2f,的长方体体积为.%2f\n",len,wid,hei,volume);
}
}
//面向对象的一个重要思想就是通过抽象得到类,即将数据和操作这些数据的方法封装在一个类中。
//通过对长方体的观察做出以下抽象,成员变量有长、宽、高,方法有计算长方体体积,根据上述抽象,编写出如下Box长方体类。
class Box{
double lenght;
double width;
double height;
public double getBoxVolume(){
return lenght*width*height;
}
}
public class duixiang {
public static void main(String[] args){
Box b=new Box();
b.width=10;b.height=20;b.height=30;
double volume=b.getBoxVolume();
System.out.printf("长%.2f,宽%.2f,高%.2f的长方体体积为%.2f\n",b.lenght,b.width,b.height,volume);
}
}
类、对象和构造方法
类
类中包含两部分:成员变量和成员方法。
成员变量:是类的属性,反映了对象的静态特性。
成员方法:是类的行为,反映了类的动态特性。
创建对象
创建对象的语法格式:
//格式一:
类名 对象名[=null];
对象名=new 类名();
//格式二:
类名 对象名=new 类名();
成员变量的默认值
在类创建对象时,编译器会为对象的各类型的成员给一个默认值,无论是基础数据类型还是引用数据类型,对按下表列出的规则自动赋默认值。
序号 | 类成员变量数据类型 | 默认值 |
---|---|---|
1 | byte | 0 |
2 | short | 0 |
3 | int | 0 |
4 | long | 0L |
5 | float | 0.0F |
6 | double | 0.0D |
7 | char | '\u0000’空 |
8 | boolean | false |
9 | 引用数据类型 | null |
构造方法
- 构造方法是一种特殊方法,构造方法的名字必须与它所在的类的名称完全相同。
- 构造方法没有返回类型。
- 对象不可以显示调用构造方法,构造方法是专门在创建对象时使用的。
public class dingyi {
public static void main(String[] args){
学生类 s=new 学生类();//创建类
System.out.println(args.toString());//调用成员
矩形类 rect=new 矩形类();
System.out.println(rect.getDia());
}
}
//定义类
class 学生类{//类头
//类体
private String 学号="12345678";//成员变量赋值
public String 姓名="王刚";
protected char 性别='男';
int 年龄=21;
final String 专业="计算机";
public static int 学生对象个数=0;
public String toString(){
return "学号="+学号+"\n姓名="+姓名+
"\n性别="+性别+"\n年龄="+年龄+
"\n专业="+专业;
}
}
class 矩形类{
private double length;
private double width;
public double getArea() {
return length*width;
}
public double getDia(){
return (length+width)*2;
}
}