Java编程————面向对象

一 类与对象

什么是类?

简单来说,类就是类别的意思,用class表示。
面向对象编程,万物皆可编程 ,在程序中表示一个事物时,往往回因为事物的复杂
导致编程的代码非常的复杂。
或者更深层次的理解,你创建一个类,你就是创建了一个新的,专属于你的数据类型。
class Human{
    int age;
    boolean gender;
    int height;
    int weight;
    //等等等等......
}

以及它所能进行的方法,比如List有add,remove等,我们也可以给类里写上方法。

class Human{
    int age;
    boolean gender;
    int height;
    int weight;
    //等等等等......
    
    void walk(){};
    void jump(){};
    void eat(){};
    void speak(){};
    //等等等等......
}

接下来我们要做的,就是往里面填入这些类的内容所具体的对应。

什么是对象?

对象就是具体的事物、具体存在的程序中。
对象指代一个事物在计算机中映射的数据体 存在于内存中。
        Human John = new Human();
        John.age = 20;
        John.gender = "Male";
        John.height = 180;
        John.weight = 78;
        John.walk();
        John.jump();

类与对象的关系?

类是对象的模板,对象是类的实例。类定义了对象的属性和方法,对象则是类的具体表现。类和对象相互依赖,共同构成面向对象编程的基础。

二 类与对象的语法

语法: public class 类名{ }

类名/类文件名: 首字母大写,多个单词拼接,每个单词首字母大写 -> 驼峰命名法
方法/变量名: 首字母小写,多个单词拼接,每个单词首字母大写 -> 小驼峰命名法
偶尔使用的局部变量 循环中计数等等可以使用字母 或者小写或者缩写

一个类中需要定义什么内容,能变成一个可以符合面向对象变成的复合型数据类型

类别的来源 -> 共性
通过分析事物之间是否具备相同的/相似的 属性 特征 行为 功能 ... 来划分类别
所以我们定义类时,也需要找到 这个类别对应事物都有哪些数据 特征 行为 功
能 等
然后使用代码把这些内容定义在类中,实现复合型数据类型的组成。

三 封装

构造部分:类在创建对象时会调用的内容,初始化部分

构造方法:
格式: 类名为方法名、没有返回值结构 public 类名(){ }
特性:
1:每个类都默认自带一个隐式的空参数构造方法
2:每个类都可以自定义构造方法
3:每个类一旦显式的定义了构造方法,隐式的就会被覆盖,不管是否
带参数
4:一个类可以定义多个构造方法,但是每个方法的参数必须不一致
(方法重载)
5: 类在创建对象时只能调用构造方法之一 ,取决于创建对象时的参数
6: 创建对象时调用、意味着构造方法可以在创建对象时初始化部分

成员属性:

变量: 初始化赋值之后可以修改值
常量: 初始化赋值之后不可以修改值
final 修饰变量,这个变量初始化赋值之后就不可以改变值
一个类中,面向对象部分分成员变量 如果使用final修饰为常量
并且也需要保证每个对象都有一个自己的常量,值是不同的,那么我们可
以在所有的构造方法/ 代码块中给常量进行初始化

访问权限修饰符: 作用于编译代码时,定义的内容可以使用的范围

public: 公开的 没有限制 整个项目中都可以使用
private: 私有的 只能本类中使用
protected: 受保护的,只能在本包中或者子类中使用 本地圈子 与 远房亲戚
缺省不写: 在本包中可以使用

可以使用访问权限修饰符的内容:

类:只能使用 public 与 缺省不写 这两种
public 修饰的类 是这个代码文件的主类,类名必须与所在文件名一致,一个文件中
就只能写一个public
缺省不写修饰的类 是这个代码文件的普通类,类名可以随意,一个文件中可以写多
个普通类

封装的实现:

封:限制
对于属性和方法 ,如果不希望直接暴露在类的外面随意使用,我们可以在类中使用
符合要求的访问权限修饰符限制
装:打包 装配结构 set/get
通过方法来访问受限制的属性和方法
读: 取属性变量的值 可以使用带返回值的方法
public 数据类型 get属性名(){ return 属性变量;}
写: 给属性变量赋值
public void set属性名(数据类型 参数名){ 属性变量 = 参数名;}

封装的主要优点包括:

数据保护:封装可以保护对象的内部状态,通过限制对数据的直接访问,防止外部代码对对象内部数据的随意修改,从而避免数据的不一致性和错误。

信息隐藏:封装使得对象的内部实现细节对外部不可见,只暴露必要的接口,降低了模块之间的耦合度,提高了代码的可维护性和可扩展性。

简化接口:封装使得对象的使用更加简单,用户只需要关注对象提供的接口,而不需要关心内部的实现细节。

提高安全性:封装可以对数据进行验证和过滤,确保数据的合法性和安全性。

增强代码复用性:封装的对象可以被其他程序或模块复用,提高了代码的复用性和开发效率。

class Triple<T>{
    private T first;
    private T second;
    private T third;

    public Triple(T first, T second, T third) {
        this.first = first;
        this.second = second;
        this.third = third;
    }

    public T getFirst() {
        return first;
    }

    public void setFirst(T first) {
        this.first = first;
    }

    public T getSecond() {
        return second;
    }

    public void setSecond(T second) {
        this.second = second;
    }

    public T getThird() {
        return third;
    }

    public void setThird(T third) {
        this.third = third;
    }

    public void printTriple(){
        System.out.println(first + "\t" + second + "\t" + third);
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值