标签:style 面向对象 main 结构 point byte 数据 als 技术分享
面向过程的结构化程序设计的弊端:1.缺乏对数据的封装;2.数据和方法的分离。
1.面向对象
1)什么是抽象数据类型
将不同类型的数据的集合组成一个整体用来描述一种新的事物。
2)什么是类
3)成员变量和方法
类中可以包含成员变量和方法;
案例1:创建一个员工类
Emp{
String name;
char gender;
int age;
double salary;
}
在这个示例中,定义了Emp类型的组成,其中(name、gender、age、salary)这些变量成为成员变量。name用来存放员工的姓名、gender用来存放员工的性别、age用来存放员工的年龄、salary用来存放员工的工资。
定义了Emp类后,提高了代码的模块化以及代码的复用性,但依然存在问题,如:打印信息的方法只能针对Emp数据操作,属于Emp自身的方法,需要实现数据和方法(对该类型数据的操作)的统一。
4)成员变量初始化
成员变量类型 | 默认初始值 |
byte、short、int、long、float、double | 0 |
boolean型 | false |
char型 | /u0000 |
引用类型 | null |
5)定义类的方法
方法是用于描述对象的行为,封装对象的功能。
一个包含成员变量和方法的类语法:
class 类名{
成员变量类型 成员变量;
修饰词 返回值类型 方法名(参数列表){
方法体;
}
...
}
6)创建对象
案例2:创建一个员工对象
public class Test {
public static void main(String[] args) {
Emp e = new Emp();
}
}
7)引用类型变量
8)访问对象的成员变量、调用方法
可以通过引用访问对象的成员变量或调用方法
public class Test {
public static void main(String[] args) {
Emp e = new Emp();
e.name = "Tom";
e.gender = ‘男‘;
e.age = 29;
e.salary = 5000;
}
}
9)引用类型变量的赋值
案例3:引用类型之间赋值
public class Test {
public static void main(String[] args) {
Emp e = new Emp();
e.name = "Tom";
e.gender = ‘男‘;
e.age = 29;
e.salary = 5000;
System.out.println(e.name); //Tom
Emp f = e;
f.name = "Jerry";
System.out.println(e.name); //Jerry
}
}
由上例可以发现,引用类型之间的赋值与基本类型之间的赋值不一样,引用类型之间赋值(画“=”号)指向同一个对象,对一个引用的修改会影响另一个引用。
10)null
案例4:创建一个引用赋值为null
public class Test {
public static void main(String[] args) {
Emp e = null;
e.name = "Tom";
System.out.println(e.name);
}
}
/*
运行结果:
Exception in thread "main" java.lang.NullPointerException
at test.Test.main(Test.java:8)
*/
案例5:类的演示
要求:创建一个员工类,定义成员变量包含name、gender、age、salary, 定义方法打印员工的信息,创建两个员工对象并打印出信息。
public class Emp {
//定义成员变量
String name;
char gender;
int age;
double salary;
public void empPrint(){ //定义方法打印员工信息
System.out.println("姓名:"+name+"性别:"+gender+"年龄:"+age+"薪资:"+salary);
}
public static void main(String[] args) {
Emp e = new Emp();
e.name = "Tom";
e.gender = ‘男‘;
e.age = 29;
e.salary = 5000;
e.empPrint(); //调用方法打印员工信息
Emp ee = new Emp();
ee.name = "Jerry";
ee.gender = ‘女‘;
ee.age = 25;
ee.salary = 6000;
ee.empPrint();
}
}
/*
运行结果:
姓名:Tom性别:男年龄:29薪资:5000.0
姓名:Jerry性别:女年龄:25薪资:6000.0
*/
标签:style 面向对象 main 结构 point byte 数据 als 技术分享
原文地址:http://www.cnblogs.com/jmwm/p/6920697.html