java中的类和对象(它来了~~~)

面向对象和面向过程

面向过程

-面向过程主要是每一步和每一步的因果关系,当我们需要实现一个功能,
第一步要干什么,第一步完成之后,在第一步的基础上第二步需要完成什么,第二步完成了,在第二步的基础上完成第三步,每一步和每一步之间都有一中因果关系结合到一起.就叫做面向过程.
-明显就可以发现面向过程的问题了,当一步走错之后,那接下来的每一步都会发生问题,那么整个系统的运转就会出现问题,代码的耦合度太高了,导致代码的扩展力很差.
-对于一些小型的项目来说,可采用面向过程的方式来进行开发,效率较高,
不需要对象的提取,模型的建立,拿到项目之后直接干活写代码,编写因果关系,一步到位,实现功能

面向对象

-面向对象就是将需求的功能分割成不同的单元,每个单元都实现成对象,然后进行驱动,让个对象之间协作起来共同完成这个功能.面向对象开发更符合人类的逻辑思维,面向对象的方式开发使得程序的耦合度降低,扩展力提高,
我们来举一个简单的例子说明以下:
需要实现一个抽烟的抽象功能
比如说:张三在厕所抽烟
分别是由张三,打火机,烟,厕所组成来完成抽烟的动作.
这个过程以面向对象的方式,可以将以上分为:对象"张三",对象"打火机".对象"烟",对象"厕所".四个对象组合在一起,就是形成抽烟这个抽象的功能,当我们程序员需要完成抽烟这个功能的时候,只需要分配去完成不同的对象模块,再将各个对象模块衔接在一起,完成抽烟的功能,当以后这个功能出现问题的时候(比如打火机坏了),可以直接换一个打火机,只需要改变"打火机"这个模块就可以解决问题.

类和对象

什么是类

类实际上在现实生活中不存在的,是一个抽象的概念,是一个模板,是人大脑进行总结,思考.抽象化的一个结果.
1:类其实等于 “属性” + “方法”;
属性是以"变量"的形式存在的,属性对应的是数据,而数据在程序中,只能存放在变量当中, 例如:

学生包括:学号,姓名等特征,这些特征呢都是以数据的形式存在的.

方法表述的是动作,多见于动词
2:怎样定义一个类
[修饰符列表] class 类名{
属性;
方法
}

什么是对象

对象是实际存在的个体.
类是一个模板,类中所描述的是对象的"共同特征",对象是通过类创建出来的个体,比如说:人类,抽象的模板,具体的"张三"是对象."李四"也是个对象.
怎么完成对象的创建?
格式为: new 类名();

  • 这里的new 是java当中的运算符,等同于" + " , " - " , " * " , " / ",new这个运算符是专门负责创建对象使用的,假设现在有一个Student类,我们直接通过new运算符:new Student(); 就完成对象的创建.

构造方法

上述我们通过new运算符完成了对象的创建,其实上述我们创建对象是调用了Student类的构造方法,来完成了对象的创建.
1:构造方法的语法结构
[修饰符列表] 构造方法名(类名) (形式参数){
构造方法体
}
需要注意的是构造方法名必须和类名保持一致,并且构造方法是没有返回值类型的,有了返回值类型,就成了普通的方法了,
2:构造方法的作用:
通俗来讲:构造方法就是用来创建对象的,同时给对象赋值
我们通过new 运算符就可以完成构造方法的调用,调用的同时就完成了对象的创建
在一个类中如果没提供任何的构造方法时,系统会默认提供一个无参的构造方法,这个构造方法被称为,“缺省构造器”,如果一个类中只有有参的构造方法,那无参的构造方法将不再提供,不能被调用

public class ConstructionMethodTest01 {
    public static void main(String[] args) {
        new Student();
    }
}
class Student{
    int no;//学号
    String name;
    int age;
    //无参构造方法
    public Student(){
        System.out.println("无参构造方法执行啦!!");
    }
}
//执行结果
无参构造方法执行啦!!

调用构造方法后,也就完成了对象的创建,并且给实例变量赋初始值,

Student zhangsan =  new Student();
        System.out.println("zhangsan的学号是:"+zhangsan.no + "张三的姓名是:"+zhangsan.name+"年龄是:"+zhangsan.age);
    
运行结果:
无参构造方法执行啦!!
zhangsan的学号是:0张三的姓名是:null年龄是:0

无参构造方法再给实力变量赋值的时候,赋的是系统的默认值,

再来看一下有参的构造方法:
定义一个User类,`

class User{
    int id;
    String name;
    int age;
    public User(){

    }
    public User(int id,String name,int age){
        this.id = id;
        this.name = name;
        this.age = age;
    }
}

通过测试类来进行测试

public class ConstructionMethodTest02 {
    public static void main(String[] args) {
        User user1 = new User();

        User user2 = new User("张三",3,32);
        System.out.println(user1.age);
        System.out.println(user1.id);
        System.out.println(user1.name);
        System.out.println("==============");
        System.out.println(user2.age);
        System.out.println(user2.id);
        System.out.println(user2.name);
    }
}
运行结果
0
0
null
==============
32
3
张三

同样,调用无参构造方法,赋的是默认值,调用有参构造方法之后,就可以进行赋值了.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值