Java基础——类和对象

一、类的定义

1.什么是类

类是用来对一个实体 ( 对象 ) 来进行描述的 ,主要描述该实体 ( 对象 ) 具有哪些属性 ( 外观尺寸等 ) ,哪些功能 ( 用来干 啥) ,描述完成后计算机就可以识别了。

2.如何定义类

类中包含成员变量和成员方法。

class Student{
    Public String name;
    Public double score; 
    Public int age; //成员变量
    
    Public void Reading(){
        System.out.println(this.name+"正在读书...");
    }
    Public void Classing(){
        System.out.println(this.name+"正在上课...");
    }     
    //成员方法
}
采用 Java 语言将洗衣机类在计算机中定义完成,经过 javac 编译之后形成 .class 文件,在 JVM 的基础上计算机就可以
识别了。

二、类的实例化

定义了一个类,就相当于在计算机中定义了一种新的类型 ,与 int double 类似,只不过 int double java 语言自
带的内置类型,而类是用户自定义了一个新的类型,比如上述的: PetDog 类和 Student 类。它们都是类 ( 一种新定
义的类型 ) 有了这些自定义的类型之后,就可以使用这些类来定义实例 ( 或者称为对象 )
用类类型创建对象的过程,称为类的实例化 ,在 java 中采用 new 关键字,配合类名来实例化对象。
public class Main{
    public static void main(String[] args) {
        Student student1 = new Student;
        student1.name = mike;
        student1.age = 18;

        Student student2 = new Student;
        student2.name = lisa;
        student2.age = 19;
    }
}

通过new关键字来对类进行实例化,类是一种自定义类型,可以用来定义变量,一个类可以实例化多个对象。

三、this关键字的使用

1.为什么我们要用this关键字

public void setDay(int year, int month, int day){
    year = year;
    month = month;
    day = day;
}

这里我们会发现Setday不知道到底是谁给谁赋值?所以我们可以使用this关键字来标注这里的成员变量。

public void setDay(int year, int month, int day){
    this.year = year;
    this.month = month;
    this.day = day;
}
this 引用指向当前对象 ( 成员方法运行时调用该成员方法的对象 ) ,在成员方法中所有成员变量的操作,都是通过该
引用去访问
  • this的类型:对应类类型引用,即哪个对象调用就是哪个对象的引用类型。
  • this只能在"成员方法"中使用。
  • "成员方法"中,this只能引用当前对象,不能再引用其他对象。
  • this成员方法第一个隐藏的参数,编译器会自动传递,在成员方法执行时,编译器会负责将调用成员方法 。

四、对象的构造及初始化

1.什么是构造

构造方法 ( 也称为构造器 ) 是一个特殊的成员方法, 名字必须与类名相同,在创建对象时,由编译器自动调用,并且 在整个对象的生命周期内只调用一次

2.如何使用构造方法

// 无参构造方法
public Student(){
    this.name = xiaoming;
    this.age = 18;
}

// 带有两个参数的构造方法
public Student(String name, int age){
    this.name = name;
    this.age = age;
}
如果没有定义任何构造方法,编译器会默认生成一个构造方法,且这个构造方法一定是无参的。

五、封装

1.如何理解封装

像生活中的手机,电脑等都进行了封装,所谓封装就是别人把细节隐藏起来,只提供一些接口等来供用户使用。用户并不需要了解主板、CPU、内存条等东西,所以商家就把这些封装起来,只提供了充电口、耳机口等。

封装:将数据和操作数据的方法进行有机结合,隐藏对象的属性和实现细节,仅对外公开接口来和对象进行 交互

2.访问限定符

privatedefaultprotectedpublic
1同一包中的同一类
2同一包中的不同类
3不同包中的子类
4不同包中的非子类

 

六、static的使用

public class Main{
    public static void main(String[] args) {
        Student student1 = new Student;
        student1.name = mike;
        student1.age = 18;
        student1.class = 1;

        Student student2 = new Student;
        student2.name = lisa;
        student2.age = 19;
        student2.class = 1;
    }
}

我们会发现学生1和2的班级是一样的,那我们是否能将他合并,不用分开写了呢,我们可以借助static来对成员变量进行静态处理。,将班级设为静态变量。

class Student{
    Public String name;
    Public double score; 
    Public int age; 
    Public static class = 1; //成员变量
    
    Public void Reading(){
        System.out.println(this.name+"正在读书...");
    }
    Public void Classing(){
        System.out.println(this.name+"正在上课...");
    }     
    //成员方法
}
static 修饰的成员变量,称为静态成员变量 ,静态成员变量最大的特性: 不属于某个具体的对象,是所有对象所共
享的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值