Java-面对对象-基础详解

目录

一、面对对象概述

1.1、什么是面向对象

1.2、三大思想(OOA、OOD、OOP)

1.3、三大特征(封装  继承  依赖)

二、类与对象的关系

三、类与对象的创建


编程规范

一、面向对象概述

1.1、什么是面向对象

例1:把大象关进冰箱分几步?(以小明为例)

         面向过程:1、小明把冰箱门打开    2、小明把大象装进冰箱   3、小明关上冰箱门

         面向对象:1、招一个能操作冰箱的工人,小明(对象)

                           2、指挥工人把大象装进冰箱

                                      (可以清楚的看到,所有的事情都是小明做的)

人物(对象)小明       (能操作冰箱的工人,也就是我们所说的对象)
功能(属性)1、打开冰箱门    2、装大象      3、关闭冰箱门

              所以

问题更改:把1000只大象装进冰箱分几步?

        面对过程:1、小明把冰箱门打开    2、小明把第一只大象装进冰箱   3、小明关上冰箱门

                          4、小明把冰箱门打开    5、小明把第二只大象装进冰箱   6、小明关上冰箱门

                         ..................循环1000遍(非常死板,复用性低)

        面向对象:1、招一个能操作冰箱的工人,小明(对象) 2、指挥工人把大                                                              象依次装进冰箱。(可复用性高

面向过程---面向对象的转变:

   面向过程:

        扮演角色:执行者

        关  注  点:执行过程/(步骤和顺序)

       优缺点:直接高效、复用性低

   面向对象:

        扮演角色:指挥者

        关  注  点:具备功能的整体(对象)(1.有哪些参与者  2.各自需要做什么)

        优缺点:复用性高,易于扩展,维护

 面向过程面向对象
扮演角色执行者指挥者
关  注  点执行过程(步骤和顺序)

具备功能的整体(对象)

有哪些参与者和各自需要做什么

优缺点复用性低(死板)复用性高,易于维护,扩展

总结:面向对象是一种软件开发方法。

定义:面向对象是相对于面向过程来讲的,把相关的数据和方法组织成一个整体,从更高层次对系统进行建模。

//已经理解的就不用看下面的例子了,不理解的继续看下去

例2、日常场景,一日三餐的解决。

   面向过程:

          亲力亲为:买菜-做饭-吃饭-洗碗

   面向对象:

          招聘一个保姆,坐等吃饭

           人物(对象):保姆

            功能(属性):买菜-做饭-洗碗

例3:你是一个千万富豪,此时,你的生活不限于一日三餐,还有花园修剪,草坪维护,泳池大理等等。

    面向过程:此处省略10000000000个子

    面向对象:1、招聘一个管家   2、管家招聘各种工人 (指挥管家做事,管家指挥工人做事)

注意;写代码也是一样的,各种功能采取不同的模块,如果只关注过程的话,当代码量达到一定的量后,就写不下去了。

1.2、三大思想(OOA、OOD、OOP)

         面向对象分析(OOA):

                  

         面向对象设计(OOD):

         面向对象程序(OOP):

1.3、三大特征(封装  继承  多态)

           封装封装就是隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和                          修改的访问级别,将抽象得到的数据和行为(或功能)相结合,形成一个有机的整                          体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和函数                        都是类的成员

                意义:明确标识出允许外部使用的所有成员函数和数据项,内部细节对外部调用透明,                             外部调用无需修改或者关心内部实现。

               (1)javabean中的属性私有,提供getset对外访问,因为属性的赋值或者获取逻辑只能                          由javabean本身决定,而不能由外部胡乱修改。

private String name:
public void setName(String name){
    this name = "tuling_"+name;
}

                     代码中的name有自己的命名规则,明显不能由外部直接赋值。

             (2) ORM框架

                  在我们操作数据库的时候,不需要担心链接是如何建立的,sql是如何执行的,只需要                      引入mybatis,调方法就可以

           继承:继承基类的方法,并做出自己的改变活扩展

                     子类共性的方法或者属性直接使用父类的,不需要自己再定义,只需扩展自己个性化                       的。

           多态:方法的重载本身就是一个多态性的体现

                     基于对象所属类的不同,外部对同一方法的调用,实际执行的逻辑不同。继承、方法                       重写,父类引用指向子类对象

父类类型 变量名 = new 子类对象;
变量名.方法名();

                        是无法调用子类特有的功能的

二、类与对象的关系

2.1:类与对象的关系

类:是共性产物,具有综合的特征

  例1;

          类       名: 人

          综合特征:名字、年龄、性别、身高等等所有人的有 的特征,叫综合特征

 例2:

          类        名:车子

           综合特征:颜色、类型、大小、价格等所有车共有的特征,叫综合特征

对象:一种个性产物。具有一种种个性特征

 关系;注意类必须通过对象才可以使用,对象的所有操作都在类中定义

      关系:图纸--------------------实物

               图纸必须通过实物才可以使用,实物的所有操作都在图纸中定义

属性:相当于人的一个个特征

方法:相当于人的一个个行为:吃饭,睡觉,打豆豆等等

三、类与对象的创建

类的定义格式:

class 类名称{
    成员属性;
    成员方法;
}

eg:图纸,属性和创建对象类似

class Person{
    //属性----特征
    String name;
    Int age;
    char sex;
    //方法---行为
}

属性的定义格式:

    数据类型 属性名;
属性定义并赋值的格式;
    数据类型 属性名 = 初始化值;

方法的定义格式:

package day01;
/*
 * class 类名{
 * 		成员属性;
 * 		成员方法;
 * }
 * 
 * 、、、、
 * 类必须编写在.java文件中,一个.java文件中可以有N个类,但是只能存在一个public修饰的类
 * public:权限修饰符
 * .java文件的文件名称必须与public修饰的类名一致
 * **/
public class ClassAddObject {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//对象创建
		/*格式
		 * 类名.对象名=new 类名();
		 * **/
		Person p = new Person();		
		//对象属性赋值
		//格式:对象名.属性名=值;
		/*调用格式
		 * 对象名.方法名称(实际参数列表);
		 * **/
		p.name="张三";
		p.age=18;
		p.sex='男';
		//调用说话的方法
		p.say();	
		//调用计算的方法
		p.sum(100, 200);
		//打印出来
		int s=p.sum(100, 200);
		System.out.println(s);
	}

}
//创建一个类,描述一个人(相当于人的图纸)
class Person{
//成员属性;----特征
		String name;
		int age;
		char sex;
//成员方法----- 行 为
/*方法的定义格式
 *  返回值类型  方法名(形式参数列表){
 *    方法体;
 *    return 返回值;
 *  }
 *注意:void 没有返回值 
 * **/
	//创建一个人说话的方法
void say() {
	System.out.println("自我介绍:我的名字是:"+name+",我的年龄是:"+age+",性别:"+sex);
}

//创建一个可以计算加法的方法
//返回值类型:int 
int sum(int x , int y){
	int z= x+y;
	return z;  //retun代表这个方法执行完了,在return后面不能在写代码
}




}

这些全是基本,在下一篇里我将讲述

1、构造方法

2、方法(构造方法)的重载

3、匿名对象

在下一篇(面向对象进阶)

1、封装

2、this关键字

3、静态static

4、权限修饰符

5、main方法详解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值