【JAVA】方法和类

简介: java中方法只有定义和使用,没有声明

一、方法的定义

    public  static  返回值类型  方法名称(参数列表){


               语句


       }



       方法定义在类(class)里,但不能定义在其他方法中


       类{


               方法1(){...}


               方法2(){...}


               方法3(){...}


           }


      注意:方法只定义,没有被调用,里面的语句永远不会被执行


二、方法的使用(调用)

       可以出现语句的位置,可以进行方法的调用


    //方法定义
    public static int add(int x,int y) {
        return x + y;
    }
    //方法调用
    public static void main(String[] args) {
        int a = 1;
        int b = 2;
        add(a,b);
    }

  调用其他类里面的方法:类名 . 方法名


三、方法的重载

    Java中一个编译单元里(一个Java类)允许出现相同名称的函数(方法),参数列表不同即可


               两个整形相加                                add(int ,int)


               两个浮点型相加                             add(double,double)


四、方法的签名

       Java编译单元中唯一确定方法的标识


               = 方法名 + 参数列表


       只要方法签名不同,就可以定义新的方法


备注:


       1.参数列表只看类型,不看名称


         add(int  a,int  b) {...}        前提


         add(int  a,int  b) {...}        可定义


         add(int  a,int  b) {...}        不可定义


       2.方法的签名中不包括返回值类型


         int  add(int  a,int  b){...}                              前提


         int  add(double  a,double  b){...}                可定义


         double  add(int  a,int  b){...}                       不可定义


五、静态属性、类变量、静态变量

       除了局部变量外的另一种变量类型


       初始值:0的变形


       使用:类名 . 变量名


       定义位置:类里,方法外,用static修饰


      2.png


       作用域:跟随大括号(整个类的内部都是有效的)


       生命周期:伴随着类在运行中的生命周期而运行,暂时可认为静态属性在程序运行期间始终                              存在


       类的生命周期:


               .java 经过编译成为  .class        在硬盘上


       类的加载:将属于一个类的数据从硬盘上加载到内存中


       类的卸载:将放在内存中的类数据从内存中剔除


六、关于类的加载的问题

       1.某个具体的类在某个类被用到时触发加载


       2.什么叫做类被用到了


               A.method(...)                用到了A


               A.main(...)                    用到了A


               A.静态属性                        用到了A


       3.静态属性的初始化语句在类的加载过程中就会完成静态属性的初始化工作


       4.类的加载的用法


               直接赋值                static  int  a = ...


               静态代码块             static {...}


               按照代码的书写顺序,依次执行


       5.哪些类被加载了


               静态属性


               方法 -> 语句 - >  字节码指令


       6.加载到哪个区域了


               JVM管理的区域有栈区、方法区,类的数据被加载到方法区


七、访问权限(访问限定符)

    定义在A类中的方法和属性,是否允许其他的类使用          

public default(不写) privata
所有类都可用 只能被当前包里面的其他类使用 只在自己类内部可使用

       访问限定符能出现的位置:


               类的内部,用来修饰类变量、方法、...                public/default/privata


               定义类的时候                                                       public/default


八、类里面可以出现什么

       1.类方法、类方法的定义、类变量的初始语句(定义时初始化、静态代码块)


               class 某个类 {


                       static  int  a;


                       static  void  method(){...}


                       static  int  b = ...;


                       static {...}


       2.语句只能出现在方法内部                特例:类变量的初始语句


目录
相关文章
|
14天前
|
安全 Java API
告别繁琐编码,拥抱Java 8新特性:Stream API与Optional类助你高效编程,成就卓越开发者!
【8月更文挑战第29天】Java 8为开发者引入了多项新特性,其中Stream API和Optional类尤其值得关注。Stream API对集合操作进行了高级抽象,支持声明式的数据处理,避免了显式循环代码的编写;而Optional类则作为非空值的容器,有效减少了空指针异常的风险。通过几个实战示例,我们展示了如何利用Stream API进行过滤与转换操作,以及如何借助Optional类安全地处理可能为null的数据,从而使代码更加简洁和健壮。
42 0
|
2天前
|
Java
java的类详解
在 Java 中,类是面向对象编程的核心概念,用于定义具有相似特性和行为的对象模板。以下是类的关键特性:唯一且遵循命名规则的类名;描述对象状态的私有属性;描述对象行为的方法,包括实例方法和静态方法;用于初始化对象的构造方法;通过封装保护内部属性;通过继承扩展其他类的功能;以及通过多态增强代码灵活性。下面是一个简单的 `Person` 类示例,展示了属性、构造方法、getter 和 setter 方法及行为方法的使用。
|
6天前
|
Java API 开发者
【Java字节码操控新篇章】JDK 22类文件API预览:解锁Java底层的无限可能!
【9月更文挑战第6天】JDK 22的类文件API为Java开发者们打开了一扇通往Java底层世界的大门。通过这个API,我们可以更加深入地理解Java程序的工作原理,实现更加灵活和强大的功能。虽然目前它还处于预览版阶段,但我们已经可以预见其在未来Java开发中的重要地位。让我们共同期待Java字节码操控新篇章的到来!
|
4天前
|
Java
Java 对象和类
在Java中,**类**(Class)和**对象**(Object)是面向对象编程的基础。类是创建对象的模板,定义了属性和方法;对象是类的实例,通过`new`关键字创建,具有类定义的属性和行为。例如,`Animal`类定义了`name`和`age`属性及`eat()`、`sleep()`方法;通过`new Animal()`创建的`myAnimal`对象即可调用这些方法。面向对象编程通过类和对象模拟现实世界的实体及其关系,实现问题的结构化解决。
|
7天前
|
存储 Java 程序员
优化Java多线程应用:是创建Thread对象直接调用start()方法?还是用个变量调用?
这篇文章探讨了Java中两种创建和启动线程的方法,并分析了它们的区别。作者建议直接调用 `Thread` 对象的 `start()` 方法,而非保持强引用,以避免内存泄漏、简化线程生命周期管理,并减少不必要的线程控制。文章详细解释了这种方法在使用 `ThreadLocal` 时的优势,并提供了代码示例。作者洛小豆,文章来源于稀土掘金。
|
4天前
|
Java API 开发者
【Java字节码的掌控者】JDK 22类文件API:解锁Java深层次的奥秘,赋能开发者无限可能!
【9月更文挑战第8天】JDK 22类文件API的引入,为Java开发者们打开了一扇通往Java字节码操控新世界的大门。通过这个API,我们可以更加深入地理解Java程序的底层行为,实现更加高效、可靠和创新的Java应用。虽然目前它还处于预览版阶段,但我们已经可以预见其在未来Java开发中的重要地位。让我们共同期待Java字节码操控新篇章的到来,并积极探索类文件API带来的无限可能!
|
12天前
|
Java
用JAVA架建List集合为树形结构的代码方法
这段代码定义了一个表示树形结构的 `Node` 类和一个用于构建树形结构的 `TreeController`。`Node` 类包含基本属性如 `id`、`pid`、`name` 和 `type`,以及子节点列表 `children`。`TreeController` 包含初始化节点列表并将其转换为树形结构的方法。通过过滤和分组操作实现树形结构的构建。详情可见:[代码示例链接1](http://www.zidongmutanji.com/zsjx/43551.html),[代码效果参考链接2](https://www.257342.com/sitemap/post.html)。
25 5
|
15天前
|
安全 Java 开发者
【技术咖必看】Java异常处理新境界:throws关键字,打造万无一失的方法签名!
【技术咖必看】Java异常处理新境界:throws关键字,打造万无一失的方法签名!
29 3
|
15天前
|
安全 Java 程序员
【程序猿逆袭指南】Java高手的秘密武器:throws关键字,让你的方法签名霸气侧漏!
【程序猿逆袭指南】Java高手的秘密武器:throws关键字,让你的方法签名霸气侧漏!
12 3
|
15天前
|
机器学习/深度学习 人工智能 算法
探索人工智能在医疗诊断中的应用与挑战Java编程中的对象和类:基础与实践
【8月更文挑战第27天】随着人工智能(AI)技术的飞速发展,其在医疗领域的应用日益广泛。本文深入探讨了AI技术在医疗诊断中的具体应用案例,包括图像识别、疾病预测和药物研发等方面,并分析了当前面临的主要挑战,如数据隐私、算法偏见和法规限制等。文章旨在为读者提供一个全面的视角,理解AI在改善医疗服务质量方面的潜力及其局限性。