Java SE 类与对象学习笔记04

1 类与对象

1.在学习java中到底什么是类,什么是对象前,我们要理解什么是面向过程、什么是面向对象。

面向过程适合简单、不需要协作的事务。比如,如何开车?我们很容易就列出实现步骤:1. 发动车 2. 挂挡 3.踩油门。 但是当我们思考比较复杂的问题,比如“如何造车?”,就会发现造车太复杂,需要很多协作才能完成。此时面向对象思想就应运而生了。
面向对象(Object)思想更契合人的思维模式。我们首先思考的是“怎么设计这个事物?” 比如思考造车,我们就会先思考“车怎么设计?”,而不是“怎么按步骤造车的问题”。这就是思维方式的转变。因此,面向对象可以帮助我们从宏观上把握、从整体上分析整个系统。 但是,具体到实现部分的微观操作(就是一个个方法),仍然需要面向过程的思路去处理。

定义

对象: 对象表示现实世界中一个具体的事物。对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。

类: 类是一个模板,它描述一类对象的行为和状态。

二者之间的关系:
类是抽象的概念,仅仅是一个模板,比如说:“人”。
对象是一个你能够看得到、摸得着的具体实体。
类定义了对象将会拥有的特征(属性)和行为(方法)
类是对象的类型,对象是类的实例
一个类可以包含以下几种变量
局部变量:
在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。

成员变量:成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。

**类变量:**类变量也声明在类中,方法体之外,但必须声明为static类型。

类的属性和方法

1、属性

类的属性就是我们在描述某个东西时所指出的这个东西的特点。

比如我们描述一个数码产品,基本上会用“品牌”、“颜色”、“内存大小”等几个特点来描述它。那么如果这个时候我们把“这个数码产品”当做一个类的话,那么它的属性就是刚才我们所指出的那几个特点。

2、方法

所谓方法,就是指一类事物的用途、行为或者功能。

以刚才笔记本电脑为例。那么笔记本电脑的用途比如“写文章”、“学习”等,就是笔记本电脑这个类的方法。我们可以在程序中去调用这些方法以达到我们的目的。

3、构造方法

在Java中,任何变量在被使用前都必须先设置初值。Java提供的为类的成员变量赋初值的专门方法,就是构造方法。构造方法会在对象被实例化的时候被调用。

注意:构造方法名必须与类名完全一致;构造方法没有返回值类型,连“void”也没有;如果你没有在一个类中定义构造方法,java会自动提供一个没有任何形参的默认的构造方法。

这里我们定义一个简单的“学生类”

public class Student{
    private String name;//姓名属性,私有
    private int age;//年龄属性,私有
    private int score;//学分属性,私有
    /**
     *构造函数,读取姓名和年龄属性
     */
    public Student(String name,int age){
         this.name = name;
         this.age = age;
    }
    /**
     *定义一个学习方法。每学习一次学分加1
     */
    public void study(){
        score++;
        System.out.println(name+"正在学习中,学分是"+score);
    }
}

方法重载

有些时候我们可以发现在特定的情况下有些对象会有一些其他对象没有的属性,这就导致有些类没办法通用。而再重新为这仅有的几个对象建立一个类会比较麻烦,这种情况我们就需要用到方法的重载。重载时候方法名必须要完全一致;参数(个数、类型、顺序)最少有一个不同。
注意:返回值不影响方法重载。
构造方法也可以重载 。

带参方法的使用

1.一个参数
定义带参方法:

public class ZhazhiJi {
    public String zhazhi ( String fruit ) {
          String juice = fruit + "汁";
          return juice; 
     } 
}

调用带参方法:

/*调用zhazhi方法*/
ZhazhiJi myZhazhiji = new ZhazhiJi();
String myFruit = "苹果";
String myJuice = myZhazhi.zhazhi(myFruit);
System.out.println(myJuice);

2.多个参数
定义带参方法:

public class ZhazhiJi {
    public String zhazhi ( String fruit,String fruit2 ) {
          String juice = fruit + "汁和"+fruit2+"汁";
          return juice; 
     } 
}

调用带参方法:

/*调用zhazhi方法*/
ZhazhiJi myZhazhiji = new ZhazhiJi();
String myFruit = "苹果";
String myFruit2 = "桃子";
String myJuice = myZhazhi.zhazhi(myFruit,myFruit2);
System.out.println(myJuice);

Java中的继承

继承允许创建分等级层次的类。运用继承可以创建一个通用类定义一系列一般特性。该类可以被更具体的类继承。
被继承的类是父类
继承父类的类称为子类
执行继承时,子类将获得父类的属性,并具有自身特有的属性。
extends关键字用于继承类。声明一个继承父类的类的通常形式如下

class 父类 {
}
 
class 子类 extends 父类 {
}

注意
没有extends,默认父类为Object
只能有一个父类,即单继承
子类继承父类的全部成员,除了private成员
子类与父类不在同包,使用默认访问权限的成员不能被继承
构造方法不能被继承

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值