java面向对象编程
1、面向对象的程序设计
1.1 抽象的数据类型
-
将不同类型的数据的集合组成的整体用来描述一种新的事物。
-
人:包含了(String name,int age,char sex,double salary)4种不同类型的数据组成的整体;
-
学生:包含了(String name, double score,String grade) 也是不同类型的数据组成的整体
-
-
思考:人把大象装进冰箱分几步?
-
人:数据类型有(String name ,int age ....) 功能(人装大象 打开冰箱门 关上冰箱门)行为
-
大象:数据类型( double weight ,String name) 行为(被人拿起,装进冰箱)
-
冰箱 数据类型( String singe) 行为(关门,开门)
-
-
上面所出现的人、学生、大象、冰箱都是一种抽象数据类型----类!!!
-
类是java语言最基本单位。
1.2 什么是类(类的首字母要大写)
-
类的成员:
-
属性(成员变量)
-
行为(方法,函数)
-
public class Person{//该类只定义了4个成员变量
//成员变量
String name;
int age;
char sex;
double salary;
}
1.3 类的转化过程
-
打印学生的第一个方法
/** 打印学生信息的方法 * 姓名、年龄、性别、学号 */
public static void studentInfo(String name,int age,char sex,double number){
System.out.println("---------------"); System.out.println("姓名: " + name);
System.out.println("年龄:" + age);
System.out.println("性别: " + sex);
System.out.println("学号:" + number);
}
!!!参数中多种不同类型的数据,我们考虑采用抽象数据类型--类来替换参数类型
-
打印学生信息的第二种方式
/** 打印学生信息的方法 * 姓名、年龄、性别、学号 */
public static void studentInfolijian(Student studnet){
System.out.println("---------------"); System.out.println("姓名: " + name);
System.out.println("年龄:" + age);
System.out.println("性别: " + sex);
System.out.println("学号:" + number);
}
public class Student{
String name;
int age;
char sex;
doubel number;
}
!!!打印学生信息方法只能针对Studnet数据操作,是属于Student自身方法,因此没有实现数据与操作数据的行为统一
-
打印学生信息的第三种方法
public class Student{
String name;
int age;
char sex;
doubel number;
}
public void studentInfolijian(){
System.out.println("---------------"); System.out.println("姓名: " + name);
System.out.println("年龄:" + age);
System.out.println("性别: " + sex);
System.out.println("学号:" + number);
}
public static void main(String[] args){
Student stu=new Studnet();
stu.studneInfo();
}
!!!Student打印学生的信息方法只针对与Student操作,是Student内部的方法;
-
总结:
-
类是一种抽象的数据类型;
-
OOP(Object Oriented Programming)面向对象编程实际是分类型思想。将过程中出现的数据泛化为类。
-
类的组成:属性和方法
-
main方法也属于类的方法;
-
2、定义一个类
2.1 定义类的成员变量
-
用于描述该类型对象共同的数据结构
public class Person{
//成员变量 数据类型 变量名称
String name;
int age;
.....
}
-
成员变量如果不赋初始值时,则系统会提供默认的初始值
2.2 定义类的成员方法
-
用于描述对象的行为,封装对象的功能。
public class Person{
//成员方法 !!!main方法也是类的组成元素之一
Public void show(){
System.out.println("show.....");
}
}
3、创建并使用对象
3.1 使用new关键字创建对象
-
通过new 类名();表示创建了该类的对象,也叫做类的实例化(instantiation)。
new Person();//实例化人类对象
3.2 引用类型变量
-
为了能够对实例化的对象进行访问控制,需要使用一个特殊的变量---引用
Person p=new Person();
//p:指向对象的引用
-
引用存储的是对象的地址信息,"指向对象的引用"。
-
可以通过引用采用打点的形式访问对象的成员。
-
在java中,除了8中基本类型外,其他类型都为引用数据类型---且默认值为null
Person p=new Person();//实例化人类对象
p.name="张三";//引用访问属性
p.show();//引用访问方法
Person p1 = p;
Person p2 = new Person();
p2.name = "zhang3";
p2.age = 16;
p2.show();
System.out.println(p == p1);//t p和p1由同样的地址值
System.out.println(p == p2);//f p和p2两个new关键字。只要new就会创建对象,地址就不 一样
3.3 引用类型变量的赋值
-
相同类型之间引用相互赋值
-
引用类型之间的赋值不会创建新的对象,但有可能会使两个引用指向同一对象
3.4 null和nullPointerException
-
对于引用类型变量可以赋值为null,null的含义为"空",表示没有指向任何对象
-
当引用的值为null时,再去调用其成员会抛出nullPointerException(空指针异常)
Person p4 = null;
p4.name = "wangmazi";
-
总结:
-
不同类型组成的抽象的数据类型-------类 java中基本组成单位
-
类的成员:属性(成员变量)和方法(成员方法);
-
如何使用类:通过new关键字;
-
引用:存储了对象地址值的变量,指向对象的引用
-
引用数据类型:除了8种基本类型外都叫引用类型 类!
-
空指针异常:当对象为空时,使用它会报空指针
-
4.初始化对象的三种方式
-
直接通过赋值运算符初始化;
-
代码块初始化;
-
构造方法初始化。
5、实例化对象的过程:
将类加载到内存,给静态数据成员分配空间,调用静态代码块;给成员变量分配空间;调用代码块;调用构造方法。
本文来自博客园,作者:LXXXXxZz,转载请注明原文链接:https://www.cnblogs.com/l11111/p/16014418.html