面向对象,只要是在大学里学过c语言的都知道,在大学的第一趟c语言课程老师都会讲c语言是面向过程的然后会简单的说个例子。然后再说c++是面向对象的语言再简单的举个例子。
我们Java也是面向对象的语言。接下来我也会举很多的例子。来验证,会剖析一下到底什么事面向对象。
例子一,在你吃饭的时候没有筷子你会怎么办? 自己去拿?找别人去拿?当然也可以不拿直接手抓。
但是大部分人会自己去拿,当自己去拿筷子的这个过程到拿到筷子可以吃饭了。就解决了你吃饭没有筷子这个问题。 这个解决问题的方法就是我们c语言面向过程的解决方法。
那面向对象是怎么个过程呢?就是我们自己不去拿筷子,我们还可以拿到筷子,并且吃饭。那我们会怎么解决呢?叫别人拿,让别人来解决我们没有筷子的这个问题。这个 个解决问题点方法就是面向对象的解决方法。
面向对象的核心思想,寻找一个对象,使用这个对象去解决问题。所以这个对象就是重点。能不能解决问题就在于我们能不能找对对象。
面向对象的特点
1,把复杂的问题简单化。就拿我们吃饭没筷子来举例子。我们让别人拿自己省了很多事。
2,懒人思想。
3,自己不想拿,叫别人拿,角色的转换。从一个执行者的角色,转化成指挥的角色。
面向对象设计方向
Java这门面向对象的语言是怎么设计的呢?
1,维护类和对象之间的关系是这门语言的核心。
2,不断的操作对象,使对象实现不同的功能。
哪有那些元素组成了面向对象呢?
最基本的元素 一个 类!
类是什么呢?
举个例子。比如上面拿筷子的例子。你遇到了这个问题,这个问题就是一个类。不同的问题有不同的类型。
哪类是什么组成的呢?
类是由不同对象组成的。比如说你拿筷子的问题,让谁拿?姓名:那什么样的筷子?筷子型号:
去哪里拿?地点:
姓名:
筷子型号:
地点:
这都是对象。
对象就是由类创建出来的具体事物。
那我们来写一下类中的类型分哪几种
成员变量:相当于是个属性
比如:姓名 筷子型号 地点。
那就是说使用名词来描述事物的属性
成员方法:相当于是个行为
比如:让某某人拿这个人去拿就是一个方法。
那就是说使用动词来描述事物的行为
面向对象的特征?
封装
多态
接口
接下来我们声明一个类。
public class WorkDemo02 {
public static void main(String[] args) {
//在内存中开辟一块空间
Music stu = new Music ();
// 成员变量
stu.name = "姓名";
stu.type = "曲风";
stu.number ="歌名";
System.out.println(stu.name);
System.out.println(stu.type);
System.out.println(stu.number);
//成员方法
stu.name();
stu.type();
stu.number();
}
}
class Music{
String name;
String type;
String number;
public void name() {
System.out.println("祥");
}
public void type() {
System.out.println("激情似火");
}
public void number() {
System.out.println("敢爱敢做");
}
}
一个对象在内存中的表现
对象的封装
把属性和方面具体实现给隐藏起来。只开放公共访问方法
用private (权限修饰符)把所需要隐藏的对象,或类权限改为私有的
属性添加:private 变成私有属性
//私有属性 本类中可以访问到 出了本类就访问不到了
封装的第一步结束
用 get/set
获取值 get.方法的名字
修改值 set.方法的名字
封装完成、接下来我们写一个。
public class Demo03{
public static void main (String[]agrs){
//get/set 私有化
Rrct number = new Rect ();
number.setHeight1();
number.setWidth();
}
}
//定义一个类
class Rect{
//私有化
private int height;
private int width;
//构造方法
//无返回值类型
public Rect(){
}
public Rect(int height,int width )
//获取成员变量
this.setHeight1(height);
this.setWidth(width);
}
//get / set方法
public void setHeight(int height){
this.setHeight1(height);
}
public int getHeight(){
return this.height;
}