java掌握面与对象

2.1 面向对象概述

“面向对象”(英语:Object Oriented,简称OO)是一种以事物为中心的编程思想。

面向对象程序设计(英语:Object-oriented programming,缩写:OOP),是一种程序开发的方法。它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性

面向对象是相对于面向过程而言的(c则是一个典型的面向过程的语言),站在面向对象的角度去看问题,你则是对象的动作指挥者。如果站在面向过程的角度去看问题,你则是动作的执行者

类(Class)和对象(Object)是面向对象的核心概念。

  • 类是对一类事物的描述,是抽象的、概念上的定义
  • 对象是实际存在的该类事物的每个个体,因而也称为实例(instance)==实体。

 

  • 可以理解为: 类  =  抽象概念的人; 对象  =  实实在在的某个人
  • 面向对象程序设计的重点是 类的设计
  • 类的设计, 其实就是类的成员的设计

2.2 面向对象与面向过程

2.2.1 举例解释比如:

1:买电脑

1:面向过程 是执行者

1:查资料

2:电脑城砍价

3:被坑

4:痛苦归来

1:面向对象  指挥者

1:找对象。懂电脑的人(小明)

2:小明.砍价

3:小明.检测电脑

4:电脑成功购买

2:吃饭

1:面向过程

1:自己动手做

2:买菜

3:洗菜

4:煮饭炒菜

5:很难吃,浪费时间

2:面向对象

1:找专业对象

2:餐馆.点餐

3:餐馆,做饭

4:饭好吃,节约时间,精力

再例如:去西藏旅行等案例只要能讲明白就行。

面向对象就是一个渐悟过程;每天给自己定个小目标100行代码;

2.2.2 区别

面向过程:强调的是功能行为,面向过程”是一种以过程为中心的编程思想。“面向过程”他们不支持丰富的“面向对象”特性(比如继承、多态),就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。面向过程在这一系列工作的执行中,强调的是工作的执行

面向对象:强调的是具备某种功能的对象

其实以后开发程序就是找对象和创建对象(没有对象创建对象)的过程

面向对象分析方法分析问题的思路和步骤:

      1. 根据问题需要,选择问题所针对的现实世界中的实体。
      2. 从实体中寻找解决问题相关的属性和功能,这些属性和功能就形成了概念世界中的类。
      3. 把抽象的实体用计算机语言进行描述,形成计算机世界中类的定义。即借助某种程序

语言,把类构造成计算机能够识别和处理的数据结构。

  1. 将类实例化成计算机世界中的对象。对象是计算机世界中解决问题的最终工具。

2.3 面向对象好处

1.更符合人们日常的逻辑思维,更容易理解

2.开发程序更加方便,快捷

3.从以前的执行者,变成现在的指挥者

 

java基本元素:类和对象

类的语法结构:

修饰符  class  类名 {

属性声明;

方法声明;

}

说明:修饰符public:类可以被任意访问

类的正文要用{}括起来

举例:

public class Person{

private int age; //声明私有变量age

public void showAge(int i){//声明方法showAge()

age=I;

}

}

创建Java 自定义类

步骤:

1. 定义类(考虑修饰符、类名)

2. 编写类的属性(考虑修饰符、属性类型、属性名、初始化值)

3. 编写类的方法(考虑修饰符、返回值类型、方法名、形参等)

 

练习:

定义Person、Animal等类,加以体会。

 

2.4面向对象开发,设计和特征

2.4.1 开发:

就一个寻找对象,使用对象的过程,没有对象就创建对象

2.4.2设计:

就是维护对象与对象之间的关系

2.4.3特征:

1.封装

2.继承

3.多态

2.5 使用Java描述事物

我们写程序就是为了方便日常生活,其实就是将生活中的事物通过编程语言使用程序描述,我们使用Java语言描述生活中的事物

案例:通过Java语言定义一个汽车类,并生产出汽车,有颜色,轮胎个数,有跑的功能。

分析:如何描述现实世界中的事物?其实是描述该事物的属性和行为,汽车具有颜色和轮胎数的属性,具备跑的行为。

如何使用Java语言进行转换?

根据对应关系:

属性:类中的成员变量

行为:类中的成员函数(方法)

那么定义Java类就是定义一个类的成员。汽车类具备的成员是:颜色,轮胎数,运行方法。

Car类定义流程:

  1. 使用class 关键字 定义类,
        1. class空格 类名。类名就是标识符,命名规则,单词的首字母大写,多个单词的首字母大写。注意:不是规定,但是最好遵守
        2. 类名后紧跟一对{}表示类的开始和结束。
  2. 汽车有轮胎数 int num;
        1. 不需要给num初始化值,因为汽车轮胎数不确定,有4,有6,有8。
  3. 有颜色 String color
        1. 为什么使用String  例如定义颜色"红色"是字符串类型。
        2. 也不需要初始化值。
  4. 跑的行为(方法、函数)     void run(){}
        1. 方法中执行输出语句。syso("跑啦。。。。");

代码

 

2.6 创建对象

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

使用“对象名. 对象成员的方式访问对象成员(包括属性和方法)

创建Car对象

  1. 使用new关键词,就像new数组一样
  2. 需要给型的汽车起一个名字,car
  3. 变量都是有类型的,car属于什么类型,属于Car类型,叫做类类型
  4. Car car=new Car();

图纸画好了,类定义成功了。如何根据图纸生产汽车,在Java中如何根据类来生产一个对象。

Java中生产汽车比较简单,通过一个关键字”new”, 通过 new  Car(); 就在内存中产生了一个实体,汽车对象就生产出来了。

汽车对象生产出来后,还没有名字,为了方便使用,需要起一个名字。就用小写的C 来表示新车的名字。

Java中的变量都需要有类型。那么c 是什么类型呢?c 是Car类型,所以c也叫做类类型变量。

 

创建类

 

public class Person {

 

    //属性

    String name;

    int age=1;

    boolean isMale;

 

    //方法

    public void eat(){

        System.out.println("dcdsc");

    }

    public void sleep(){

        System.out.println("睡觉");

    }

    public void talk(String language){

        System.out.println("人说话"+language);

    }

 

}

 

 

/*

一、设计类,其实就是设计类的成员

    属性=成员变量=filed=字段

    方法=成员方法=函数=method

 

    创建类的对象=类的实例=实例化类

 

二、类和对象的使用(面向思想的落地)

    1、创建类,设计类的成员

    2,创建类的对象

    3,通过“对象.属性”或“对象.方法”调用对象的结构

 

 */

public class PersonTest {

    public static void main(String[] args) {

        //创建对象,固定的格式

        Person p1 =new Person();

        //调用对象的结构:属性、方法

        //“对象.属性”或“对象.方法”调用对象的结构

        p1.name="Jack Ma";

        p1.isMale=true;

        System.out.println(p1.name);

 

        //调用方法“对象.方法”

        p1.eat();

        p1.sleep();

        p1.talk("Chinese");

    }

}

注意:

类的访问机制:

  1. 在一个类中的访问机制: 类中的方法可以直接访问类中的成员变量 

(: 例外:static 方法访问非 static, , 编译不通过 。 )

  1. 在不同类中的访问机制: 先创建要访问类的对象  再用对象访问类中定义的成员 。

2.7局部变量和成员变量

局部变量和成员(全局)变量的区别

   0.定义位置

   局部变量:声明在局部位置,方法或者语句(for循环等语句)上

   成员变量:定义在类中,

   1.存储位置

   局部变量:局部变量在栈内存存放

   成员变量:存储在堆内存

   2.默认值

   局部变量:没有默认值,必须初始化

   成员变量:有默认值,默认值与数据类型有关

   3.生命周期

   局部变量:根据语句的结束自动释放

   成员变量:随着对象的存在而存在,随着对象的消失而消失

   4.作用范围

   局部变量:作用在方法或语句中

   成员变量:作用在整个类中

注意:如果成员变量和局部变量名相同,遵循就近原则,使用局部的

 

 

2.8 匿名对象(了解)

概述:匿名对象就是没有名字的对象

应用:

  0.调用且只调用一次方法时使用

  1.可以将匿名对象当做方法的实际参数进行传递

好处:匿名对象会直接变成垃圾回收,节省内存空间

注意:如果该对象要频繁使用,就给对象起名字

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值