文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Java中的类(基础详解)

2023-09-01 15:49

关注

文章目录

java中最常见的就是类,可以说,Java程序是由一个一个的类组成的

在C++中,我们只有在面向对象编程的时候才会用到类,一般想实现某一个功能可以写一个函数。

在一个 .java 程序中,可以出现多个类,但有且仅有一个类是 public 并且这个public类的名字必须和文件名相同,看图片来的快,有图有真相

在这里插入图片描述

我们看到此时主类的名字和文件名相同,此时没有报错,如果我改一下主类的名字,情况如下

在这里插入图片描述

很明显的报错,下面我们来看看错误原因

在这里插入图片描述

翻译过来就是:hello 类是public的,应该被声明在一个文件名叫 hello.java 的文件中。

下面我们来看一下一个java中有多个类型情况:

在这里插入图片描述

这里就是记住java中可以有多个类,但是只能有一个public类。

因为每一个java程序运行的时候都会先执行public这个类,而且只执行public类中的代码,如果写了其他的类但是在public类中没有用到,就不会执行其他的类,但是这个类的写法必须正确;如果写了其他的类并在public类中使用了其他的类,那么也会执行其他类的相应代码。

而且除public类之外的其他类也可以写在public类的后面,即使在主类中要调用这个类

在这里插入图片描述

代码:

public class Main {    public static void main(String args[]) {        System.out.println("hello world!");        person p=new person();  //创建一个person类        p.sayhello();  //调用类其中的一个方法    }}class person{    String name;    int age;    void sayhello(){        System.out.println("嗨嘿嗨");    }    void printages(){        System.out.println(age);    }}

我们可以看到在程序截图中可以看到有 1 usage 或者 2 usages ,但是在单纯的代码片段中没有。

这个单词 usage 的意思是 用法,惯例
也可以认为是 仓库中本Jar被其他Jar依赖引用的次数

其实就是某个变量或者函数被使用的次数,这个其实不用管它,影响不大。

我们举一个类的例子:

class person{    //name和age属于类中的字段    String name;    int age;    //sayhello()函数属于类的方法    void sayhello(){        System.out.println("嗨嘿嗨");    }}

类的构造函数可以用来给一个类的数值赋一个初值,用来初始化(new)该类的一个新的对象。

而且构造函数和类名同名,并且不需要写返回值类型

class person{    String name;    int age;    person(String s,int a){  //类的构造函数        name=s;        age=a;    }    void sayhello(){        System.out.println("嗨嘿嗨");    }    void printages(){        System.out.println(age);    }}

我们没写构造函数的时候

如果我们自己没有写构造函数,那么程序会自动生成一个默认构造函数,这个默认构造函数没有参数,函数中也没有任何语句,也就是相当于什么都不做。
默认生成的类似于这样

person(){}

其实就是什么都没做。

在没写构造函数的时候,初始化一个新对象的时候,不需要写参数
在这里插入图片描述
运行结果
在这里插入图片描述

如果我们自己写了构造函数

那么程序就不会再生成默认构造函数了,在初始化一个对象的时候,就使用咱们自己写的构造函数了,并且如果自己写的构造函数中有参数,必须要加上参数,否则报错,如果本身就没写参数,那么可以不写。

还是看图片来的快

在这里插入图片描述

构造函数中 this 的使用

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

比如说,age=和 this.age 是一样的,都是可以运行的。

void printages(){        System.out.println(age);}
void printages(){        System.out.println(this.age);}
  1. this 还可以用来解决 局部变量 同名的问题,比如说

这样写也是可以运行的,那么this.name指的就是域变量,name指的就是参数变量。

在这里插入图片描述

person(String name,int age){        this.name=name;        this.age=age;}
  1. 在构造函数中,this 可以调用另一种构造方法,并且这条调用语句必须放在第一句
person(){this()...}

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

第一类:访问修饰符

public, private, protected,

类的访问控制符为public或者默认。
如果类用public修饰,则该类可以被其他类所访问。
如果类是默认访问控制符,则改类只能被同包中的类访问。

第二类:其他修饰符 / 非访问控制符

abstract, static, final

static字段
import java.io.*;public class Main {    public static void main(String args[]) {        person p=new person("ycy",16);  //创建一个person类        System.out.println(p.age);  //这里用一个实例化的对象来访问类中static字段        System.out.println(person.age); //这里可以用类名来直接访问类中static字段    }}class person{    String name;    static int age;    person(String name,int age){        this.name=name;        this.age=age;    }}

输出结果:

在这里插入图片描述

final
abstract

来源地址:https://blog.csdn.net/xiatutut/article/details/127061062

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯