提到面向对象,咱们就不得不提到面向过程,什么是面向过程呢,若是小伙伴们在大学的时候学过C语言的话,想必对面向过程应该是不陌生的,或者学过C plus plus 的前半部分,c plus plus 也是有面向对象的。。,面向过程:以步骤为单位,一步一步完成某一个具体的事情,面向对象:以对象为单位,经过调度组合不一样的对象来完成某一个事情,面向对象更高级一些!
举个例子:轩轩买彩票中了600块钱,打算去创业卖煎饼,我作事情的过程全都我一我的来,租三轮,买原料,灌煤气,亲手摊煎饼,而后亲手收钱每件事情都得本身亲手来,这个创业的过程就是面向过程,可是后来呢我摊的 煎饼很好吃,很是好吃,忙不过来了,我就开始招人了,有专门收钱的,专门摊煎饼的,专门买面的,还有专门蹬三轮的。。。,而后轩轩呢就负责支配他们,让他们帮我卖煎饼,轩轩调度人手的办事的过程就是面向对象了!
面向对象是一种编程思想
面向对象是一种思考问题的思惟方式java
先总体,再局部
先抽象,再具体
能作什么,再作什么程序员
掌握一门面向对象语言的语法
熟悉面向对象的设计原则
熟悉面向对象设计模式 大概23中 经常使用的十来种编程
一、类是:分类、类别。
二、经过分类,咱们能够区别不一样的事物种类,在平常生活当中,咱们经常这样作。
三、因此,类是一组具备相同特性(属性)与行为(方法)的事物集合。 咱们除了特征和 行为以外,还能经过其余的东西分类了,咱们发现没有了!属性和行为好像就能把全部的东西都能分类了设计模式
一、类表示一个共性的产物,是一个综合的特征,而对象,是一个个性的产物,是一个个体的特征。
二、类由属性和方法组成:
· 属性:就至关于一个个的特征
· 方法:就至关于人的一个个的行为,例如:说话、吃饭、唱歌、睡觉
类就是类别分类,对象就是这个类里边的实例,好比男人这个分类,那我就是一个对象!再举个例子轩轩就是个对象,程序员就是类!程序员的属性就是头发少,钱多,话少,死的早!数组
在Java中可使用如下的语句定义一个类:学习
class 类名称{
属性名称;
返回值类型 方法名称(){}
}
复制代码
对象的定义: 一个类要想真正的进行操做,则必须依靠对象,对象的定义格式以下:spa
类名称 对象名称 = new 类名称() ;
复制代码
按照以上的格式就能够产生对象了,我去...原来搞个对象那么容易哈..new 一下就一个对象啧啧啧设计
若是要想访问类中的属性或方法(方法的定义),则能够依靠如下的语法形式:
访问类中的属性:3d
对象.属性 ;
复制代码
调用类中的方法:指针
对象.方法();
复制代码
在java中对象声明有两种含义
声明对象:
Horse horse= null; ;
// 表示声明了一个对象,可是此对象没法使用,horse没有具体的内存指向
复制代码
实例化对象:
horse= new Horse() ;
// 表示实例化了对象,可使用
//经过对象调用方法:
horse.eat()
//匿名对象调用方法:
new Horse().eat()
复制代码
代码实例:
public class Test8{
public static void main(String[] args){
//类的使用
Horse h=null;//声明一个类的变量(变量 除了八种基本数据类型 都是引用类型,包括数组)
//建立一个Horse类型的对象 (实例化一个对象)
h=new Horse();
//有了对象,咱们就能够调用对象的属性和方法
h.name="赤兔马";
h.age=350;
h.run();//调用方法 方法就被执行了
h.eat();
//匿名对象:只能使用一次 用完后就会被释放
new Horse().eat();
h=null;//把对象释放掉
// h.eat(); 当对象不存在时,调用改对象的方法和属性会报空指针异常
}
}
//自定义一个类(类型 引用类型) Horse 类
class Horse{
//在类中定义属性(特征)
String name;
int age;
//定义方法
public void run(){
System.out.println("我是"+name+",我"+age+"岁了,我还能日行千里");
}
public void eat(){
System.out.println("我吃仙草,还吃得多");
}
}
复制代码
一、new 关键字表示建立一个对象
二、new 关键字表示实例化对象
三、new 关键字表示申请内存空间
注意:若是使用一个没有申请内存空间的对象,会报空指针异常: java.lang.NullPointerException
对象在内存中的结构:
Horse horse= null;
horse = new Horse();
在内存中建立多个对象: