首页 > 编程语言 >java学习笔记-面向对象-类的内部构造与对象(2)

java学习笔记-面向对象-类的内部构造与对象(2)

时间:2024-11-16 16:44:42浏览次数:3  
标签:mike java name 对象 笔记 面向对象 String Student 属性

  • 类是一组具有相同属性和行为的对象的抽象。

  • 类及类的关系构成了对象模型的主要内容。

  • 面向对象编程的主要任务就是定义对象模型中的各个类。

1.定义类(class)

    //定义静态属性--班费
    //在类中被定义为静态的属性将被所有该类创建的对象所共享
    static double classFees = 1000;

定义方法如下:

public class Student {
    
}

1.1静态属性(类属性)

    //定义静态属性--班费
    static double classFees = 1000;

在类中被定义为静态的属性将被所有该类创建的对象所共享,如学生A用了100元剩900元,学生B再用100元就剩800元.

1.2实例属性

    //定义私有属性--姓名,年龄,性别
    private String name;
    private int age;
    private String gender;

实例属性每个对象独自拥有,与其他对象的实例属性相互独立。

这里定义为private(私有化)是为后续封装做准备。

1.3构造方法(构造函数)

    //构造方法(空参)
    public Student() {
    }

类创建对象时就是通过构造函数进行创建。如:Student joe= new Student();

此时调用的方法就是空参构造。

空参构造是系统默认的构造方法,不写也会拥有。

但当创建有参构造后系统默认的空参构造将会失效,所以一般会将有参无参构造都写出来。

    //构造方法(有参)
    public Student(String name, int age, String gender) {
        this.name = name;
        this.age = age;
        this.gender = gender;
    }

这是有参构造,如:Student jonny= new Student("jonny",18,"男");

在创建对象时就可以直接将参数传进去,注意输入类型,顺序要一致。

构造方法参数列表中的数量,顺序可以进行变更,来适配更多的输入情况。

1.4Getter与Setter方法

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

此处只列出了name属性的Getter和Setter方法,其他属性与此类同。

定义get和set方法代替直接通过 对象名.属性 也同样是为封装做准备。

1.5toString方法

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", gender='" + gender + '\'' +
                '}';
    }

 一般通过重写toString方法来输出对象的属性,在重写之前如果打印对象,输出的是该对象存储的地址。

2.对象(Object)

2.1实例化对象

如上文所说,实例化对象通过构造方法实现。

        //无参构造
        Student mike = new Student();
        //有参构造
        Student rose = new Student("rose",18,"女");

2.2对象属性操作(Getter与Setter)

可以通过set方法来设置属性

        mike.setName("mike");
        mike.setAge(19);
        mike.setGender("男");

在设置之前输出mike的结果是

造成这个的原因是在创建mike对象是用的空参构造,没有参数,所以是默认值null与0。

在设置后的打印结果为

通过get方法获得属性值

        System.out.println("mike的name属性是:" + mike.getName());

 

3.结语

本篇笔记记录了面向对象中关于创建类和实例化对象的部分,为后续封装继承和多态做准备。

标签:mike,java,name,对象,笔记,面向对象,String,Student,属性
From: https://blog.csdn.net/qq_46108647/article/details/143816946

相关文章

  • 几个有意思的多线程问题 & 有趣现象笔记
    信号量释放的时候线程被带入的问题SemaphoreSlim和多线程使用的时候,.Release()时,应该在新的线程去做Release操作同理,因为Release时会切换到await等待的代码执行,也就是调用SemaphoreSlim.Release的线程被带入到了awaitSemaphoreSlim.WaitAsync()的代码执行,如果是一个......
  • [leetcode]27. 移除元素(Java实现)
    题目给你一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素。元素的顺序可能发生改变。然后返回 nums 中与 val 不同的元素的数量。假设 nums 中不等于 val 的元素数量为 k,要通过此题,您需要执行以下操作:更改 nums 数组,使 nums 的前 k ......
  • [leetcode]485. 最大连续1的个数(Java实现)
    题目给定一个二进制数组 nums ,计算其中最大连续 1 的个数。示例1:输入:nums=[1,1,0,1,1,1]输出:3解释:开头的两位和最后的三位都是连续1,所以最大连续1的个数是3.示例2:输入:nums=[1,0,1,1,0,1]输出:2解法1嗯,速度有进步我感觉我想出这个思路还是挺快的,两......
  • [leetcode]283. 移动零(Java实现)
    题目:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。请注意 ,必须在不复制数组的情况下原地对数组进行操作。示例1:输入:nums=[0,1,0,3,12]输出:[1,3,12,0,0]示例2:输入:nums=[0]输出:[0]第一种解法(帮助我这种小白......
  • java操作pdf文本域填充内容
    引入jar包<dependencies><dependency><groupId>com.itextpdf</groupId><artifactId>itext7-core</artifactId><version>7.2.5</version><type>pom&......
  • Java基础——网络编程
    可以让设备中的程序与网络上其他设备中的程序进行数据交互(实现网络通信的)。1.基本的通信架构基本的通信架构有2种形式:CS架构(Client客户端/Server服务端)、BS架构(Browser浏览器/Server服务端)无论CS架构,还是BS架构的软件都必须依赖网络编程2.网络通信的三要素2.1.IP全称互......
  • Java基础——多线程
    1.线程是一个程序内部的一条执行流程程序中如果只有一条执行流程,那这个程序就是单线程的程序2.多线程指从软硬件上实现的多条执行流程的技术(多条线程由CPU负责调度执行)2.1.如何创建多条线程Java通过java.lang.Thread类的对象来代表线程2.1.1.方式一:继承Thread类//1......
  • Python 实验五 面向对象程序设计
    实验五面向对象程序设计一、实验学时:2学时二、实验目的掌握:Python类的定义,class关键字,创建对象的方法,访问对象中的成员。掌握:私有成员与公有成员,数据成员与成员方法,类方法与静态方法,属性的定义与使用,混入机制。掌握:继承的作用与Python实现。掌握:构造函数__init__()......
  • Java-面向对象(下)
    下面让我们继续学习面向对象类的继承在现有类的基础上去构建一个新的类。现有类叫做基类(baseclass)、超类(superclass)新的类叫做派生类(derivedclass)、子类(孩子类)(childclass)如果一个类想要继承另外一个类,需要用到extends关键字。class基类{}class子类extends......
  • #Java-面向对象进阶-1
    1.static静态属性static是Java中的一个修饰符,可用来修饰成员变量、成员方法a.静态变量被static修饰的成员变量称为静态变量静态变量被该类的所有成员共享调用方式:类名调用(推荐)对象名调用例:创建方法//在创建的类中:publicstaticStringname;调用:假设类为:Stud......