面向对象是基于面向过程的编程思想
面向对象的底层是面向过程
面向对象开发
就是不断的创建对象,使用对象,指挥对象做事情。
面向对象设计
其实就是在管理和维护对象之间的关系
面向对象特征
封装(encapsulation)
继承(inheritance)
多态(polymoorphism)
类与对象特征
类:
是一组相关的属性和行为的集合
对象:
是该类事物的具体体现
举例: 实现一个学生类
public class Student {
//定义学生的属性
String name;
int age;
int height;
public void study() {
System.out.println("学生会学习");
}
public void playGame() {
System.out.println("学生会打游戏");
}
}
public class StudentDemo {
public static void main(String[] args) {
//创建对象:类名,对象名 = new 类名();
Student s = new Student();
System.out.println(s.height+"---"+s.name+"----"+s.age);
//给学生的属性赋值
s.name = "张三";
s.age = 15;
s.height = 180;
System.out.println(s.height+"---"+s.name+"----"+s.age);
//访问学生类的方法
s.study();
s.playGame();
}
}
0---null----0
180---张三----15
学生会学习
学生会打游戏
形式参数
基本类型作为形式参数
引用类型作为形式参数
class Demo {
public int getSum(int a, int b) {
return a+b;
}
}
class Test {
public static void main(String[] args) {
Demo d = new Demo();
System.out.println(d.getSum()10,20);
}
}
举例:学生类
public class Student {
public void show() {
System.out.println("这是一个学生类");
}
}
//这个类是将student对象为参数传递
public class StudentDemo {
public void method(Student student) {
student.show();
}
}
//这是引用类型作为参数列表的传递测试类
public class Test {
public static void main(String[] args) {
StudentDemo studentdemo = new StudentDemo();
Student student = new Student();
studentdemo.method(student);
}
}
匿名对象
就是没有名字的对象,是对象的一种简化表示形式
匿名对象的俩种使用情况
对象调用方法仅仅一次的时候,作为实际参数传递
1.new Student().show();
2.new StudentTest().method(new StudentDemo());
public class Test {
public static void main(String[] args) {
// StudentDemo studentdemo = new StudentDemo();
// Student student = new Student();
// studentdemo.method(student);
//上述方式用匿名对象的条件,下面用匿名使用方式去改造
/*
studentdemo.method() 等价于 new studentDmeo().method()
student 等价于 new Stident()
*/
new StudentDemo().method(new Student());
}
}
上述这个就是用匿名函数改造的,具体如上所示。