面向对象
(1)面向对象的概念及其理解
面向对象:是基于面向过程的一种思想
面向过程:以函数为基础,关注实现过程。
面向对象:一对象为基础,关注实现结果。
思想特点:
A:符合人们的思考习惯。
B:把复杂的事情简单化。
C:把程序员从执行者变成了指挥者。
(2)如何用面向对象思想来描述事物
分析事物:
属性:外在特征。
行为:能够做什么。
(3)在java语言中,如何表示事物。
java语言中,最基本的单位是类,类就是用来体现事物的。
类:是属性和行为的集合。是一个抽象的概念
对象:是类的具体存在、具体体现。
成员变量 属性
成员方法 行为
例如
学生这个事物 ——类
张三、李四 ——对象
(4)举例:
把大象装进冰箱
面向过程:
A:打开冰箱
B:装进大象
C:关闭冰箱
代码如下:
class 测试类
{
public static void main(String[] args)
{
open();
in();
close();
}
public void open()
{
System.out.println("打开冰箱");
}
public void in()
{
System.out.println("装进大象");
}
public void close()
{
System.out.println("关闭冰箱");
}
}
面向对象:
怎样让我们的操作更符合面向对象思想?
A:分析该系统中有哪些对象?
B:明确每个对象可以做什么?
C:明确各个对象间的关系?
分析步骤:
A:有哪些对象?
大象
冰箱
测试
B:每个对象都有什么功能?
大象:
in()
冰箱:
open()
close()
测试:
main()
C:测试
测试中调用大象和冰箱的功能
代码体现:
class 大象
{
pubic void in()
{
System.out.println("装进大象")
}
}
class 冰箱
{
public void open()
{
System.out.println("打开冰箱")
}
public void close()
{
System.out.println("关闭冰箱")
}
}
class 测试类
{
public static void main(String[] args)
{
冰箱对象.open();
大象对象.in();
冰箱对象.close();
}
}
(5)案例
A:学生类
class Student
{
String name;
int age;
char sex;
//学习的方法
public void Study()
{
System.out.println("Students like studying ");
}
//吃饭的方法
public void eat()
{
System.out.println("学生吃饭");
}
//睡觉的方法
public void sleep()
{
System.out.println("学生睡觉");
}
//学生测试类
class StudentTest
{
public static void main(String[] args)
{
//创建对象的格式
//类名 变量名 = new 类名();
Student s = new Student();
//获取成员变量的值
//成员变量和成员方法的使用
//对象名.成员变量
//对象名.成员方法
System.out.println(s.name+"***"+s.age+"***"+s.sex);//null,0
//给成员变量赋值
s.name ="刘亦菲";
s.age = 26;
s.sex = '女';
System.out.println(s.name+"***"+s.age+"***"+s.sex);
//使用成员方法
s.study();
s.eat();
s.sleep();
}
}
B:汽车类
汽车:
成员变量:品牌,价格,颜色
成员方法:跑,停,
class Car
{
String brand = "宝马";
int price;
String color;
//跑的方法
public void run()
{
System.out.println("牌子为"+brand+"颜色为"+color+"的汽车启动了")
}
//停的功能
public void stop()
{
System.out.println("牌子为"+brand+"颜色为"+color+"的汽车停止了)
}
}
//测试类
class CarTest
{
public static void main(String[] args)
{
Car c = new Car();
//给成员变量赋值
c.brand = "奥迪";
c.price = 2000000;
c.color = "蓝色";
System.out.println(c.brand+"***"+c.price+"***"+c.color);
c.run();
c.stop();
//手动让对象变为垃圾
c =null;
c.run();
c.stop();
}
}
(6)成员变量和局部变量的区别
A:定义位置的区别:
成员变量:定义在类中,方法外。
局部变量:定义在方法中,或方法声明上。
B:初始化值的区别:
成员变量:有默认初始化值。
局部变量:没有默认初始化值,要想使用,必须先赋值,
C:存储位置的区别:
成员变量:存储在堆中。
局部变量:存储在桟中。
D:生命周期的区别
成员变量:随着对象的创建而存在,随着对象的消失而消失。
局部变量:随着方法的调用而存在,随着方法的调用完毕而消失。
(7)匿名对象
A:概念:对象的简写形式。
B:匿名对象的使用场景
<1>当对对象方法仅进行一次调用的时
<2>匿名对象可以作为实际参数进行传递