面向对象1

在学习了前面的那些Java基础知识后,现在我们终于要来到Java的核心内容面向对象了。对于初学者来说,这部分的代码训练虽然不多,但是会有很多的概念。所以要注重理解,去理解怎么找对象。话不多说,让我们去切入正题。

首先我们先了解面向对象是怎么个面向对象。

面向过程:procedure oriented programming 缩写 POP
  1.分析出解决问题所需要的步骤,然后把步骤一步一步实现。
  2.面向过程直接关注流程。

 面向对象:object oriented programming 缩写 OOP面向对象的编程语言
  1.以分类的方式进行思考和解决问题。
  2.面向对象先对整体关系作出分类,然后根据不同的类深入细节的处理。
  3.面向对象的思想符合人类的认知习惯。

面向对象是先以分类的思想去对事物进行分析,从而去设计类、类与类之间的关系。最终在使用时,根据类要实例化具体的对象,去使用具体的对象来完成功能。

举个栗子来说的话。

把大象塞进冰箱。对于面向过程而言的话,就应该是开门(),把大象塞进冰箱(),关门()。

而对于面向对象的话就要根据需求去分析从而去设计类了。

听着是不是感觉面向过程比面向对象更简单,其实在处理复杂问题是,面向对象的思想比面向过程更方便去处理。

说了这么多,其实面向对象无法取代面向过程,他们是相辅相成的。面向对象关注于从宏观上把握事物之间的关系,在具体到如何实现某个细节时,仍然采用面向过程的思维方式。面向对象如果离开了面向过程,就无法实现真正的落地,成为无源之水。

Java类

● 什么是类?
类是一个模板,它描述一类事物的属性和行为的集合.
类是表示一个客观世界某类群体的一些基本特征抽象.

 正如图所示这样,类就相当于是汽车的设计图。

● 类的结构:
成员变量:事物属性的描述;
方法:事物的行为;(可以做的事情)
构造方法:初始化对象;
内部类: 即在类体中声明的类。
块:一段没有名称的代码块。

Java类的定义

• 第一步:发现类

类的声明格式为:
[访问权限修饰符] [修饰符] class Car{
}
访问修饰符有两种public,无(默认)
修饰符:final,abstract
关键字class用来定义一个类
Java类名的命名规范:类名首字母大写,见名知意,驼峰表示。

• 第二步:发现类的共有属性(成员变量)

public class Car{
//成员变量定义
String name; //名称
String color; // 颜色
float price;//价格
}
声明成员变量的格式为:
[访问权限修饰符] [修饰符] type attr_name [=defaultValue] ;

成员变量是定义在类中,方法体之外的变量。
成员变量可以使用Java语言中任何一种数据类型(包括基本类型和引用类型)。
在定义成员变量时可以对其初始化,如果不对其初始化,Java使用默认的值对其初始化。
成员变量在创建对象的时候会从类中复制一份到对象中。
成员变量可以被类中方法、构造方法和特定类的语句块访问。
成员变量的作用范围为整个类体。

• 第三步:发现类的方法

public class Car{
//成员变量定义
String name; //名称
String color; // 颜色
float price;//价格
方法声明格式为:
[访问权限修饰符] [修饰符]/ void start(){
System.out.println("汽车启动");
[return 返回值;]
}
}

Java对象

● 对象:对象是类的一个实例,是以类为模板在内存中创建的实际存在的实例。

再用前面的图来举例。

 类==汽车图纸, 对象==实际存在的一辆汽车,拥有类中定义的功能,可以被使用。

对象的创建和使用

● 对象的创建和使用
Car x1 = new Car();
Car x1:使用Car类作为类型声明一个变量x1.
new Car():使用new + Car类构造方法创建对象.
= :将右边创建的对象地址 赋给 左边的x1变量
使用x1变量访问对象中的成员变量和成员方法.
● 同一类的每个对象有不同的成员变量存储空间。
● 同一类的每个对象共享该类的方法。

类和对象

● 总结类和对象
类是一类事物的抽象概念,是一个模型.
对象是由这个模型所创造的一个个具体存在的,实实在在存在的实例.
所以创建对象的过程也叫实例化对象.

•现实生活中先有对象后有类,而编程时先设计类后创建对象

 变量分类

前面我们讲过变量分为:  基本类型变量  byte short int long ...
                                       引用类型   String  数组  类,接口....

 而以这节课的角度

按照位置变量分为:
● 成员变量:
成员变量是定义在类中,方法体之外的变量。
成员变量可以使用Java语言中任何一种数据类型(包括基本类型和引用类型)。在定义成
员变量时可以对其初始化,如果不对其初始化,Java使用默认的值对其初始化。成员变量
在创建对象的时候会从类中复制一份到对象中。
成员变量可以被方法、构造方法和特定的语句块访问。
成员变量的作用范围为整个类体。

生命周期:开始于对象的创建,结束于对象的销毁
● 局部变量:
在方法、构造方法或者语句块中定义的变量被称为局部变量。
局部变量可以使用Java语言中任何一种数据类型(包括基本类型和引用类型)。局部变量
在使用前必须初始化赋值。
变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。

生命周期: 开始于方法调用入栈,结束于方法出栈 

 方法分类

 成员方法:成员方法是定义在类中。
语法格式:
修饰符 返回值类型 方法名( 参数列表) {
方法体语句;
[return 返回值]
}
构造方法:用来初始化对象的方法

 构造方法

•构造方法名与类名相同,且没有返回值,且不需要使用void修饰。
•作用:在构造方法中为创建的对象初始化赋值,
•在创建一个对象的时候,至少要调用一个构造方法。
•每个类都有构造方法。如果没有显式地为类定义构造方法,Java将会为该类提供一个默认
构造方法,但是只要在一个Java类中定义了一个构造方法后,默认的无参构造方法即失效。
•一个类可以有多个构造方法。
例: public class Car{
public Car(){ }
public Car(String name){ // 这个构造方法有一个参数:name }
}
例:创建Car类的对象
Car car1 = new Car();
Car car2 = new Car(“宝马”)

其中构造方法有无参的构造方法喝有参的构造方法。

 public  Car(){
              System.out.println("Car类无参的构造方法");
          }
//this表示当前正在使用的对象
          public Car(String name,int price,String color){
              System.out.println("有3个参数的构造方法");
                      this.name = name;
                      this.price = price;
                      this.color = color;
          }

 方法的重载

● 方法的重载是指同一个类中具有相同的名字,但参数不同的多个方法。
● 参数不同(可以有三方面的不同)
●数量不同
●类型不同
●顺序不同
● 调用时,会根据不同的参数表选择对应的方法。
• 注意:方法重载跟方法的返回值类型没有任何关系

 就以刚将的构造方法来举例

public Car(String name,int price){
              System.out.println("有2个参数的构造方法");
                this.name = name;
                this.price = price;
          }
public Car(String name,String color,int price){
                System.out.println("有3个参数的构造方法");
                this.name = name;
                this.price = price;
                this.color = color;
          }

 这就是方法的重载。

今天就是先简单带大家了解一下Java中的面向对象是怎么个面向对象,下次我们继续深一步学习。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值