1.3.5 面向对象特点
面向对象特点
1.面向对象是一种符合人们思考习惯的思想
2.面向对象可以将复杂的问题简单化
3.面向对象将执行着变成了指挥者
一句话总结
有形和无形 万物介对象
1.3.6 面向对象好处
将复杂问题简单化,但是处理简单问题不要把简单问题复杂化,面向过程处理复杂问题比较难
举例
水果摊一开始要自己上货,卖水果,之后当老板了可以雇上货人,卖货人调用他们即可
二 类与对象
2.1 类的思考方式
在分析事物的时候,问题领域(需求),其实就是找出问题领域中涉及的对象
归纳一类事物,分析事物的方法
1.长什么样,通过外部特征 //但是,不能区分,比如人跟猴子长差不多
2.他所特有的功能,动作,行为 //这样就能具体区分人跟猴子了
2.1 类与对象
类(抽取)
类就是将多个对象具备的共性进行抽取而来的,一个描述事物的方式
对事物进行总结得到一个抽象的概念,那么这个概念我们就叫它类
类是对象的蓝图
对象(类的实例化)
对象就是当前这个概念中的一个具体实体,是java对具体生活中事物的描述
该事物实实在在存在个体,在计算机中该个体是通过new关键字建立的
举例
//汽车与图纸的例子???(视频5类与对象)
描述事物无非就是描述事物的属性和行为
class car
calss cardemo
//创建Car类的对象.创建对象必须用new关键字完成
//字符串功能在堆内存中 初始化值=null
//指数对象做事情格式: 对象.对象成员c.run()
//定义类就是在定义类中的成员
实际开发中,大部分情况下都是先有类再根据类,实例化出对象
该事物实实在在存在个体,在计算机中该个体是通过new关键字建立的
2.3 定义类
class 类名{
成员属性
成员方法
}
2.4 定义对象
格式
类名 对象名(引用名) = new 类名() ;
创建内存图必会
举例
class Person //创建一个类,相当于创建了一种数据类型
{
String name;
int age;
void 吃()
{
}
public static void main(String[] args)
{
Person GB =new Person();//Person某某创建Person数据类型,右边可以看成赋值具体值
Person HXY =new Person();//当我们创建这个类的对象时,就相当于创建了这个类型的一个数据
System.out.println("Hello World!");
}
} //内存图中 堆内存中的叫对象,GB,HXY,P1是引用
2.5 怎样使用对象调用属性
引用名(对象).属性 //GB.name
引用名(对象).方法() //GB.eat() 现在调用方法必须都用这种格式
同一个类的对象,它们具有相同的成员属性,但是成员属性的值可能不同。
调用的是哪个对象的成员属性就得到这个对象的成员属性。
//当创建一个类时,相当于创建了一种数据类型,一般叫类 类型(引用类型,除了4类8种都是引用类型)
//当创建这个类的对象时,就相当于创建了这个类型的一个数据
//实际开发中很多类型java是没有定义了,所以我们自己定义一个类具有属性,行为,我们在调用
//我们真实使用的是对象(类是蓝图有了即可,我们用的还是具体的对象)
姓名 String
年龄 int
吃 void ()//修饰符 返回值类型 方法名 (参数列表)
class Person
{
public static void main(String[] args)
{
String name; //成员变量,成员属性
int age; //成员方法
void eat()
Person p1=new Pereon() //真正的对象在堆内存中是 new Person,P1只是对象的引用(装的是对象的内存地址)
//对象创建时,它有默认值,当我们通过.操作符进行操作,就是为其属性重新赋值
p1.age=20;//
System.out.println(p1.name)//
}
}
2.6 类中成员变量,局部变量概念
成员变量(成员属性)
对应事物属性,定义在类中的变量
局部变量(成员函数)
对应事物行为
2.7 类中成员变量,局部变量区别
1.在代码中的定义位置
成员变量:定义在类中
局部变量:定义在函数中或者语句中
2.在内存中的位置
成员变量:是创建对象时,才存在于对象中,而且在对内存中
成员变量随着对象的加载而存在 随着对象的变垃圾而消失
当该变量所属的作用于结束,该变量就是放了
3.初始化值的区别:
成员变量:因为在对内存中,所以都有默认初始化值
局部变量:在定义是,如果要被使用,必须明确初始化值
成员变量和局部变量的区别
1作用范围,成员变量在整个类内有效,而局部变量只在其方法内或流程语句中有效
2初始值,成员变量如果没有对其进行初始化,会对其进行默认初始化,局部变量必须初始化才能使用
3生命周期:成员变量的生命周期是与对象的生命周期一致,拒不变量使用完成后就消失
4创建的位置:成员变量在堆内存中,局部变量在栈内存中
2.8 类与类之间的关系
依赖
A类成员变成B类对象
聚集
A方法使用了B类的对象
继承
后面讲
People
"成员属性是可以在下面方法用的"
2.9 匿名对象
Car c=new car();//匿名对象
匿名对象其实就是一种简化形式
当对对象的方法只调用一次时,可以使用匿名对象完成
匿名对象一般只调用方法 不调用属性
匿名对象可以作为实际参数进行传递
三 封装
3.1 封装概念
是指隐藏对象的属性和细节,仅对外提供公共访问方式
private
私有的,它是一个修饰符,可以修饰成员属性与成员方法法
private举例
老师有钱,学生不能直接拿钱那就是抢钱啦
如果老师提供一个借钱的行为,学生调用即可
|