java面向对象概述

前文:

    世界是由上面组成的呢?化学家可能会说:"世界是由分子,原子,离子等这些化学物质组成的,"画家可能会说:"世界是由不同的颜色组成",不同的人不同的回答,但是如果您是一个分类学家,你会说:"世界由不同的类别的事物组成".

    其实这本身就是一个抽象的问题,物以类聚,所以可以说世界是由不同的类别的事物组成,比如:世界是由动物,植物.人.物品.和名胜古迹等等组成.而动物由分成脊椎动物和无颈椎动物,颈椎动物又分成哺乳类,鱼类,爬行类.两栖类,爬行类又可以分成有足类无足类......就这样可以继续分下去.当提到某个分类时,就可以找到该属性该分类的一个具体事物。列如:乌龟就属于爬行动物类的有足类,人就属于动物类里面的人类。当我们提到这些具体的事物的时候,就会在脑海里浮现出他们的形象。这些现实世界中客观存在的事物就称之为对象。而在java 的世界中:“万物皆对象”。

什么是面向对象程序设计:(Obje Oriented Prongranmming Language OOPL)

    面向对象程序设计,英文缩写为OOP,面向对象程序设计是一个里程碑,Alan Kay因为设计了世界上第一个面向对象语言Smalltalk而获得图灵奖。JAVA之父James Gosling结合Internet背景设计了完全面向对象的java语言,所以说java是一种纯面向对象语言.

在java中什么是对象?

    对象:即是用来描述客观事物的一个实体,也可以说对象就是类的实例,实实在在存在的个体,它是由一组属性(静态的特征,)和方法(动态的行为构成)

举例:人( person)

而人又具备以下等特征:

比如: 姓名(name), 年龄(age), 性别(sex)...

同时人又具备比如以下等行为:

如: 学习( study), 吃饭( eat), 睡觉( sleep )


在java中什么是类?

类:就是对现实生活中事物的描述,描述事物也就是在描述事物的特征(属性),和行为(方法).所以类也就是对象的类型,类定义了对象将会拥有的特征(属性)和行为(方法),

在Java中什么是属性?

        属性:就是静态的值,它是用来描述对象静态特征的一个数据项,如人类中有一个属性是姓名,也就说对象所拥有的静态的特征,在类中表示称之为类的属性

什么是类的方法?

        对象所执行的操作称之为方法,而方法是用来描述对象动态的行为.或所具备的功能.如人类,人类具有吃喝拉撒的行为,也可以说人类具备吃喝拉撒的功能.

为什么要定义类?

        根据需求,在以后的开发过程中就是在找对象.,没有就要创建一个对象.,事实上,定义类就是抽取同类实体的共性,自定义的有一个数据类型:如"宠物类","狗类""猫类".等等

面向对象的特点:

        找对象,建立对象.使用对象.维护对象关系

对象必须具备的条件:

        属性和方法

类与对象的关系:

        就是抽象与具体的关系,类是由多个对象进行综合抽象的结果.是实体对象的概念的模型.而对象就是一个类的实体,是实实在在存在是一个个体.

类与对象的命名规范:

        ①:类名首字母大写.(且尽量使用完整的单词,避免使用缩写)'

         ②:方法和属性首字母必须小写.后面每个单词首字母大写.

          ③:定义类使用帕斯卡(Pascal)命名法

            举例:

            类名:Person    方法或属性:personName;

如何创建类和使用对象; 

    举例:    //定义一个人类

        public class Person{ //定义一个人类

                        String name;   //定义姓名属性

                        int  age;    //定义年龄属性

                        String sex;//定义性别属性

    public void 


public void eat{//定义吃饭方法

      System.out.println("我叫"+name+"我今年"+age+"岁,我是一个:"+sex+"我在吃饭");

    }

public void sleep{//定义睡觉方法

      System.out.println("我叫"+name+"我今年"+age+"岁,我是一个:"+sex+"我在睡觉");

    }

}


public class Test P

       person.study="小明";

        person.eat=18;

        person.sleep="男孩";


        person.study();

 Person  person2 = new Person();

       person2.study="小红";

        person2.eat=16;

        person2.sleep="女孩";


        person2.study();

        person2.eat();

        person2.sleep();


类的作用就是创建对象,由类生成对象.称之为类的实例化过程,一个实例也就是一个对象,而一个类可以生成多个对象.就好比人类,只是一个类,当我说人.你并不知这个人类是谁,而当我具体化其姓名.年龄.性别你就知道这个人具体的是指向谁

       语法:  类名        对象名  = new        类名();

        如     Person    person  = new   Person ();

  面向对象的上基本特征:

        ①: 封装(encapsulation)
:继承(inheritance)
③:多态(polymorphism)


面向对象的优点;

        ①:与人类思维习惯一致:      面向对象的思维方式从人类考虑问题的角度出发,把人类解决问题的思维过程转变成程序能够理解的过程,面向对象过程设计能够让我们使用"类"来模拟现实世界中抽象的概念,用"对象"来模拟现实世界的实体.从而用计算机解决现实问题.

        ②;信息隐藏:提高了程序的可维护性和安全性.封装实现了模块化和信息隐藏,即将类的属性和行为进行封装在类中,这保证了对他们修改不会影响到其他对象.有利于程序的维护.同时封装使得在对象外部不能随便访问对象的属性和方法,避免了外部错误对他的影响.提高了程序的安全性.

        ③:提高了程序的可重用性:一个类可以创建多个对象.,增加了重用性,即将多处需要或其他的对象共同的行为单独写成一个方法,而在下次某个对象需要此方法时直接调用该方法即可,不需要重新在进行编写重复的代码块,从而达到了重用.                

面向对象思想与面向过程思想的区别:
面向过程:强调的是每一个功能的步骤(以步骤为单位,一步一步完成某一个具体事情)

面向对象:将功能进行封装.强调具备功能的对象.(以对象为单位.通过调度组合不同的对象来完成某一件事情.)


举例  

      洗衣服:
面向过程:把衣服脱下--找一个盆--放点洗衣粉--加点水--把衣服扔进去--搓一搓--清洗衣服--拧干--晾起来
面向对象:把衣服脱下--打开全自动洗衣机--扔进去--一键即可--晾起来

      买电脑:
面向过程:我的了解电脑--了解我自己的需求--找对应的参数信息--去中关村买电脑--讨价还价--买回电脑

面向对象:我知道我要买电脑 -- 找人去给我买 -- 就买回来了

    把大象装进冰箱: 面向过程:打开冰箱门>把大象塞进去>关上冰箱门

     动作有哪些呢?A:打开冰箱门B:装进大象 C:关闭冰箱门
面向对象的思想特点
A:是一种更符合我们思想习惯的思想
B:可以将复杂的事情简单化
C:将我们从执行者变成了指挥者

代码体现;

面向过程:

class Demo {
public static void main(String[] args) {
                                System.out.println("打开冰箱门");
//打开冰箱门的东西,我现在仅仅是为了演示,就写了一个输出语句
//其实,它可能需要做很多操作。
//这个时候代码就比较多一些了
//假设我要多次打开冰箱门,
//代码一多,每次都写一遍,麻烦不
//我们就应该用方法改进

System.out.println("装进大象");
System.out.println("关闭冰箱门");
}

}

面向对象:

public    class Elephants{//创建大象类
                            public static void showoPen() {//定义打开冰箱门的方法
System.out.println("打开冰箱门");
}

public static void showIn() {//定义装进大象的方法
System.out.println("装进大象");
}

public static void showClose() {//定义关闭冰箱门的方法
System.out.println("关闭冰箱门");
}
}

public class TestElephants{ //测试类:

public static void main(String[] args) {   

//写了方法以后,调用就改变了

                            Elephants  elephants = new Elephants();

Elephants.showoPen();
Elephants.showIn();
Elephants.showClose();

面向对象:
我们怎么才能更符合面向对象思想呢?
A:有哪些类呢?
B:每个类有哪些东西呢?
C:类与类直接的关系是什么呢?

把大象装进冰箱的分析? (如何分析有哪些类呢?UML。名词提取法。)
A:有哪些类呢?
大象
冰箱
Test
B:每个类有哪些东西呢?
大象:
进去
冰箱:
开门
关门
         Test:
main方法
C:类与类直接的关系是什么呢?
TestElephants中使用大象和冰箱类的功能。

代码体现:
public class Elephants {
public static void  showIn() {
System.out.println("装进大象");
}
}

public  class  freezer {
public static void showoPen() {
System.out.println("打开冰箱门");
}

public static void showClose {
System.out.println("关闭冰箱门");
}
}

            public class Test {
public static void main(String[] args) {
冰箱调用开门
大象调用进去
冰箱调用关门
}
}

4:开发,设计,特征
面向对象开发
就是不断的创建对象,使用对象,指挥对象做事情。

面向对象设计
其实就是在管理和维护对象之间的关系。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值