Java中的类基础详解-创新互联

目录

10年积累的成都网站制作、成都网站设计经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先做网站设计后付款的网站建设流程,更有罗平免费网站建设让你可以放心的选择与我们合作。

可以有多个类,但是只能由一个public类

类 = 字段 + 方法

类的构造

没写构造函数时

写构造函数时

构造函数中this的用法

1.this指当前这个对象本身

2.this解决局部变量和域同名的问题

3.通过this调用其他构造方法

类的修饰符和控制符

第一类:访问修饰符(private、default、protected、public)

第二类:其他修饰符和非访问修饰符(abstract、static、final)

static字段

final

abstract

可以有多个类,但是只能由一个public类

在每个.Java程序中,可以拥有多个类,但是public类有且只能拥有一个,且这个public类的名字必须与文件名相同。如图所示:

此时,程序没有出现编译报错,但是当我们改变一下类的名字,如图:

此时,程序编译报错,错误 原因为:Test类是public的,应该被声明在一个叫Test.java的文件中,即文件名与主类名不相同导致的。

接下来,我们来看一下一个.java文件可以存在多个类的情况:

class Person1{
    public String name = "张三";
    public int age = 20;

    public void print(){
        System.out.println("姓名:"+name+" 年龄:"+age);
    }
}
public class Main {
    public static void main(String[] args) {
        Person1 person1 = new Person1();
        person1.print();
    }
}

通过此代码,我们可以清楚的发现,在一个.java文件 中,出现了多个类(Person1和Main),再次强调一遍,一个.java文件中有且只能出现一个public类。

因为每个.java文件被执行的时候都会先执行public类,而且只执行public类中的代码,如果存在其他的类但是在public类中没有使用,就不会执行其他的类,但是这个类的写法必须正确,否则会编译报错;如果写了其他的类并在public类中使用了该类,那么也会执行其他类的相应代码。

而且除public类之外的其他类也可以写在public类之后,即使在主类中调用到该类。如图:

由图可以确定,定义的类可以放在public类之前和之后。

类 = 字段 + 方法

如图:

由图可见,此代码中的name和age都属于Person1中的字段,print()和eat()都属于Person1的方法

字段 是类的属性,用变量来表示

字段(filed),通常叫做”类成员“,或”类成员变量“,有时也叫”域“,理解为”数据成员“,用来承载数据。

方法 是类的操作和功能,是用函数来表示的。

类的构造

类的构造可以用来给一个类的数值赋一个初值,用来初始化一个该类的对象。构造函数与类名同名,且不需要写返回值。

没写构造函数时

如果当我们没有写构造函数时,那么程序会自动生成一个默认的构造函数,但是这个构造函数里面什么都没有,类似于空值,函数中没有任何的参数,也没有任何的语句,如图:

Person1(){}

如果没有写构造函数,我们初始化一个新的对象的时候,不需要写参数。如图:

此时初始化对象时,就不需要写参数。

写构造函数时

如果我们自己写了构造函数,那么程序就不会自动给我们生成默认的构造函数了,并且如果我们自己写的构造函数中有参数,我们在new一个对象时,要写入参数,否则会编译报错,如果自己写的构造函数中不含有参数,相应的,我们在new一个对象时也不用写参数。如图:

如果我们自己构造了函数,且函数中含有两个参数,但是我们在实例化对象时没有给出参数,此时就会出现如图所示的编译报错,如果我们加上两个对应类型的参数,程序就不会再编译报错,如图:

构造函数中this的用法 1.this指当前这个对象本身

例如,age和this.age是一样的,都能运行出相应的结果。

由运行结果所示,证实了上述说法。

2.this解决局部变量和域同名的问题

此时,我明明都已经new了一个新的对象,并且也传入了类型对应的参数,为什么打印的时候会是这样呢?这是因为构造Person1这个函数时的形参变量名和前面定义Person1这个类时的字段名相同了,那么,该如何解决呢?这时,this关键词也发挥作用了,如图:

3.通过this调用其他构造方法

在构造函数时,this可以调用另一种构造方法,,并且这条调用语句必须放在第一行。

类的修饰符和控制符

相关作用:可以修饰类,也可以修饰类中的成员(字段,方法)。

第一类:访问修饰符(private、default、protected、public)

修饰类

当前类

同包

子类

其他类

Private

Default

Protected

Public

这四类访问修饰符之间的关系如上图所示

如果不加修饰符,则默认为default修饰。

第二类:其他修饰符和非访问修饰符(abstract、static、final)

其他修饰符/非访问控制符

作用

Abstract

修饰类,成员

Static

修饰内部类,成员

Final

修饰类,成员。局部变量

static字段

1.静态字段最本质的特点是,他们是类的字段,不属于任何一个对象实例。

2.它不保存在某个对象实例的内存区间中,而是保存再类的内存区域的公共存储单元。

3.类中的static变量可以通过了类名直接访问,也可以通过对象实例来访问,两种方法的结果是相同的。因为这个static变量是存在最原本的类中的,它本身和用它来实例化的对象都可以访问。
例如System类的in和out对象,就是属于类的域,直接用类名来访问,即System.in和System.out 。


final
  • final类:如果一个类被final修饰符所修饰和限定,说明这个类不能被继承,即不会拥有子类
  • final方法:final修饰符所修饰的方法,是不能被子类所覆盖的方法。
  • final字段和final局部变量:它们的值一旦给定,就不能够更改。并且它们是只读量,它们能且只能被赋值一次。
  • 如果一个字段被static final所同时修饰,它可以表示一个常量。如果不给定初始值,则按默认值进行初始化(引用类型为null,数值类型为0,Boolean类型为false)。
abstract
  • abstract只能修饰类和方法,不能修饰变量。
  • 凡是用abstract修饰符修饰的类被称为抽象类。
  • 抽象类不能实例化,不能创建对象,设计抽象类就是用来被子类继承的。
  • abstract不能和final、private、static联合使用,只能单独使用abstract或者联合public abstract使用。
  • 抽象类方法在子类中必须被实现,否则子类仍然是abstract的。

如果给此下文代码中的抽象类Person1实例化一个对象的时候,会发现编译报错,说明抽象类不能实例化对象。 

抽象类就是用来被继承的,子类可以是抽象类,也可以是非抽象类。

同学们,Java中类这一节的内容有点难理解,一定要多下功夫,才能摸透这其中的点点滴滴。

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧

网页标题:Java中的类基础详解-创新互联
链接分享:https://www.cdcxhl.com/article48/edchp.html

成都网站建设公司_创新互联,为您提供手机网站建设微信公众号定制开发域名注册面包屑导航网站排名

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

绵阳服务器托管