面向对象(上)

面向对象(上)

面向过程:
面向

面向对象的三个特征

封装

封装是面向对象的核心思想,将对象的属性和行为封装起来,不需要让外界知道具体实现细节,这就是封装思想。

继承

继承主要描述的就是类与类之间的关系,通过继承,可以在无须重新编写原有类的情况下,对原有类的功能进行扩展。

多态

多态指的是在一个类中定义的属性和功能被其他类继承后,当把子类对象直接赋值给父类引用变量时,相同引用类型的变量调用同一个方法所呈现出的多种不同行为特征。

对象的创建和使用方法

什么是类

类是对一类事物的描述(属性,行为),是抽象的
类的定义:成员变量(对应事物的属性)
成员方法(对应事物行为)

什么是对象

对象是一类事物的实例,是具体的
对象是类的一个实例

类的定义和对象的创建

举例
定义一个student类

/*
定义一个student类,用来模拟“学生”事物,其中就有两个组成部分
属性:姓名,年龄
行为:吃饭,睡觉,学习
对应到Java的类中,
成员变量:定义在类当中,方法外边
成员方法:不要写static关键字
 */
public class Student {
    //成员变量
    String name;
    int age;

    //成员方法
    public void eat() {
        System.out.println("吃饭!");
    }
    public void sleep() {
        System.out.println("睡觉!");
    }
    public void study() {
        System.out.println("学习!");
    }
}

student对象的创建和使用

/*
类的使用
通常情况下,一个类并不能直接使用,需要根据类创建一个对象,才能使用。
1.导包
import 包名称.类名称
对于和当前类属于同一个包的情况,可以盛磊导包语句不写。
2,创建对象
类名称 对象名 = new 类名称();

3.使用
使用成员变量:对象名.成员变量名
使用成员方法:对象名.成员方法名(参数)
 */
public class Usestudent {
    public static void main(String[] args) {
        Student stu = new Student();

        //成员变量赋值
        stu.name = "刘源";
        stu.age = 18;

        System.out.println(stu.name);
        System.out.println(stu.age);

        stu.eat();
        stu.sleep();
        stu.study();
    }



}

练习:定义一个手机类

public class Phone {
    String brand;
    double price;
    String color;

    public void call(String who){
        System.out.println("给"+ who + "打电话");
    }
    public void sendMessage(){
        System.out.println("群发短信");
    }
}

手机对象的创建以及使用

public class Usephone {
    public static void main(String[] args) {
        Phone phone = new Phone();

        phone.brand = "华为";
        phone.price = 4888.0;
        phone.color = "黑色";

        System.out.println(phone.brand);
        System.out.println(phone.price);
        System.out.println(phone.color);

        phone.call("刘源");
        phone.sendMessage();

    }
}

一个对象的内存图
在这里插入图片描述

使用对象类型作为方法的参数
使用对象类型作为方法的返回值

访问控制符

访问控制符访问范围
private同一类中
defautl同一类中,同一包中
protected同一类中,同一包中,子类中
public全局范围

类的封装方式

为什么需要封装

为了避免出现不合理的问题,在设计一个java类时,应该对成员变量的访问作出一些限定,不允许外界随意访问。这就需要实现类的封装

如何实现封装

将类中的属性私有化,即使用private关键字来修饰,setter and getter 方法

掌握方法的使用方式

方法的重载和递归

方法的重载(overload)
方法函数名相同,但是参数不同(参数个数或者类型不同)

方法的递归
方法的递归是指在一个方法的内部调用自身的过程。递归必须要有结束条件。

构造方法

如果需要在实例化对象的同时就为这个对象的属性进行赋值,可以通过构造方法来实现。
构造方法是类的一个特殊成员,它会在类实例化对象时被自动调用。

构造方法语法格式与成员方法的语法格式相似
不同的是需要同时满足以下三个条件
1.方法名与类名相同
2.在方法名的前面没有任何返回值类型的声明
3.在方法中不能使用return语句返回一个值,但是可以单独写return语句来作为方法的结束

构造方法也可以重载

在java中的每个类都至少有一个构造方法,如果在一个类中没有显示的定义构造方法,系统会自动为这个类创建一个默认的构造方法,这个默认的构造方法没有参数,在其方法体中没有任何代码,即什么也不做。

掌握this 和 static 关键字的使用

this 关键字

Java中提供了一个this关键字来指代当前对象,用于在方法中访问对象的其他成员。
this关键字的3种常见的用法
1.通过this关键字调用成员变量,解决与局部变量名称冲突问题。
2.通过this关键字调用成员方法
3.通过this关键字调用构造方法
this关键字调用类的构造方法时,注意以下几点
1.只能在构造方法中使用this调用其他的构造方法,不能在成员方法中使用
2.在构造方法中,使用this调用构造方法的语句必须是该方法的第一条执行语句,且只能出现一次。
3.不能在一个类的两个构造方法中使用this互相调用。

static关键字

在java中定义了一个static关键字,它用于修饰类的成员,如成员变量,成员方法以及代码块,被static修饰过的成员具备一些特殊性

静态变量:

使用static关键字来修饰成员变量,该变量被称作静态变量,它可以被所以实例所共享。
静态变量的访问:
类名.变量名
只能用于修饰成员变量,不能用于修饰局部变量

静态方法

想要使用类中的成员方法,需要先将这个类实例化,而在实际开发中,有时会希望在不创建对象的情况下就可以调用某个方法,这种情况下就可以使用静态方法。在类中定义的方法前加上static关键字。
静态方法的访问
类名.方法名
实例对象名.方法

静态代码块
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值