举例 :
大象装进冰箱
1.面向过程
(1)打开冰箱
(2)存储大象
(3)关闭冰箱
对于面向过程思想,强调的过程(动作)。
2.面向对象
对于面向对象思想,强调的对象(实体)大象和冰箱都是对象。
(1)冰箱打开
(2)冰箱存储
(3)冰箱关闭
冰箱包含这些打开,存储,关闭的功能
2.2特点
1.面向对象是一种常见的思想,符合人们的思考习惯。
2.面向对象的出现,将复杂的问题简单化。
3.面向对象的出现,让曾经在过程中的执行者,变成了对象中的指挥者。
3.java语言对现实生活中的事物进行描述,通过类的形式来体现。
java怎么描述呢?
对于事物描述通常只关注两方面,一个是属性,一个是行为
只要明确该事物的属性和行为并定义在类中即可。
对象;其实就是该类事物实实在在存在的个体。
4.类与对象之间的关系?
类;事物的描述
对象;该类事物的实例,在Java中通过new来创建的
5.定义类其实就是在定义类中的成员
成员:成员变量<-->属性, 成员函数<-->行为
6.成员变量和局部变量的区别
1.成员变量定义在类中,整个类中都可以访问
局部变量定义在函数中,语句,局部代码块中,只在所属的区域内有效
2.成员变量存在于堆内存中的对象中
局部变量存在于栈内存的方法中
3.成员变量随着对象的建立而存在,随着对象的消失而消失
局部变量随着所属区域的执行而存在,随着所属区域的结束而结束
4.成员变量都有默认的初始值
局部变量都没有默认的初始值
7.描述小汽车
分析
1.属性:轮胎数 颜色
2.行为: 运行
class Car//创建了一个小汽车的类
{
int num;//车轮数
String color;//颜色
//汽车的功能
void run()
{
System.out.println(num+"...."+color);
}
}
class CarDemo
{
public static void main(String[] args)
{
/*
//在计算机中创建一个car的实例,通过new关键字
Car c = new Car();//c就是一个类类型的引用变量,指向了该类的对象
c.num = 4;
c.color = "red";
c.run();//要使用对象中的内容,可以通过,对象.成员的形式完成调用
*/
Car c1 = new Car();
Car c2 = new Car();
show(c1,"black");
show(c2,"red");
}
public static void show(Car c, String col)//类类型的变量一定要指向对象,否则就为null;
{
c.num = 4;
c.color = col;
System.out.println(c.num+"...."+c.color);
}
8.1封装的特点
1.提高安全性
2.提高重用性
3.将变化隔离
4.便于使用
8.2封装的原则
1.把不需要对外提供的内容都隐藏起来
2.把属性都隐藏,提供公共方法对其访问
8.3private(私有)
私有是一种权限修饰符,用于修饰成员私有的内容只在本类中有效
注意;私有仅仅是封装的一种体现而已
8.4举例
人 属性:年龄
行为: 说话
class Person//定义了一个Person的类
{ //一旦有属性几乎都private隐藏
private /*私有*/int age;//把属性(存放数据)private是为了对数据进行控制,保护数据的安全
public void setAge(int a) //向外界建立了一个对age进行访问的函数
{
if(a<0 || a>130)
{
System.out.println("年龄值非法");
return;
}
age = a;
}
public int getAge() //向外界建立了一个对age进行访问的函数
{
return age;
}
void speak()
{
System.out.println("age = "+age);
}
}
class PersonDemo
{
public static void main(String [] args)
{
Person wang = new Person();
wang.setAge(20);
int age = wang.getAge();
wang.speak();
System.out.println(age);
}
}
如果直接对age进行访问就会发生错误