Java中类的方法

2023-11-05

目录

1.类的方法

1.1 方法的语法结构

1.2 方法的返回值

1.3 类的方法调用

2.成员变量和局部变量

2.1 变量的作用域

2.2 成员变量和局部变量

4.带参数的方法

4.1 定义

4.2 示例

5.包

5.1 包概述

5.2 创建包

5.3 导入包中的类


1.类的方法

1.1 方法的语法结构

1.1.1 代码示例

public class Demo{
    public void show(){
        System.out.print("显示!");
    }
}

1.1.2 解释

公有修饰符 public,很少使用其他修饰符
返回值类型 void——无返回值,也可以是其他数据类型和对象,例如int,String
方法名        show  方法名的命名规则与变量命名规则类似
()                代表方法的特殊字符,内部可以有参数,也可以没有
{}               内部写方法体,当定义有返回值时,需要保证能够return对应的值

1.2 方法的返回值

package kgc;

public class F4 {
    String show = "我是方法4";
}
package kgc;

public class Demo {
    public void f1() {
        //1.这个方法无返回值,一般是修改全局变量或者直接输出
        System.out.println("我是方法1");
    }
    public int f2()  {
        //2.这个方法返回值为基本类型int
        int a = 2;
        return 2;
    }
    public String f3() {
        //3.这个方法返回值为引用类型String
        String ball = "我是方法3";
        return ball;
    }
    public F4 f4() {
        //4.这个方法返回值为一个对象
        F4 f4 = new F4();
        return f4;

    public static void main(String[] args) {
        Demo demo = new Demo();
        demo.f1();//方法一可以直接输出,因此直接调用就行
        System.out.println("我是方法"+demo.f2();//方法二到方法三都是返回值,需要对其进行输出
        System.out.println(demo.f3());
        System.out.println(demo.f4().show);//方法四返回的是对象,输出该对象的属性
    }
}

1.3 类的方法调用

1.3.1 类内部的方法调用

        类内的的方法之间可以直接调用,或者使用main函数创建对象后调用。

package cn.kgc.test04;

public class Demo02 {
    public void show1(){
        System.out.println("show1");
    }
    public void show2(){
        System.out.println("show2");
        show1();
    }

    public static void main(String[] args) {
        Demo02 demo02 = new Demo02();
        demo02.show2();
    }
}

 

1.3.2 类之间的方法调用

        一般需要先创建对象,在进行调用。

package cn.kgc.test04;

public class Demo03 {
    public static void main(String[] args) {
        Demo02 demo02 = new Demo02();
        demo02.show2();
    }
}

2.成员变量和局部变量

2.1 变量的作用域

        每个变量在被定义后都有其固定的作用域,作用域不一样,可以被访问的范围也就不一样,我们可能发现for循环中循环变量i在嵌套循环中无法再被使用,但在另一个循环中依然可以使用变量i,当我们在main函数中定义了i时,此时for循环不能再使用i这个变量了,这就是变量i的作用域存在区别。

2.2 成员变量和局部变量

2.2.1 定义成员变量和局部变量

        在类中直接定义的变量叫做成员变量,在方法中定义的变量就是局部变量。

public class Demo{
    int a;//成员变量
    public void test(){
        int b;//局部变量
    }
}

2.2.2 成员变量与局部变量的关系

(1)作用域:成员变量的作用域在整个类;局部变量的作用域仅仅在方法或选择、循环语句的代码块中
(2)初始化:成员变量如果在被定义时没有被赋值,Java会给这个变量自动赋一个初始值;而局部变量则不会被Java自动初始化
(3)变量名:局部变量可以和同一类中的成员变量同名,且局部变量优先级更高;同一方法中不能有同名变量

public class Demo04 {
    int a = 0;
    public void show(){
        int a = 2;
        System.out.println(a);
    }
    public static void main(String[] args) {
        Demo04 demo04 = new Demo04();
        demo04.show();
    }
}

注释掉局部变量后

    public void show(){
//        int a = 2;
        System.out.println(a);
    }

4.带参数的方法

4.1 定义

4.1.1 为什么方法要带参数

        当方法需要使用到一些变量,而这些变量的初始值又是不固定的时候,这时候就需要设置参数,让调用处对这些变量进行初始赋值后再进行方法的调用。形象的比方例如,想象一台榨汁机的功能是榨汁机类的一个功能,那么当你使用榨汁这个功能时,需要先放入原材料,如苹果,橙子...,最后才能得到相应的苹果汁,橙汁等。我们在设置带参数的方法时也是这个道理。

4.1.2 带参数方法的构造

public class Demo1 {
    public void show(String fruit,int num){
        //定义的参数叫形式参数(形参)
        //定义参数时和创建一个新变量是一样的
        //定义多个参数时用逗号,将它们隔开
        //参数的类型可以是基础类型,引用类型和自定义的类
        System.out.println("榨出了"+num+"杯"+fruit+"汁");
    }

    public static void main(String[] args) {
        Demo1 demo1 = new Demo1();
        demo1.show("草莓",5);
        //实际传递的值叫实际参数(实参)
        //传递参数的顺序必须是方法定义的形参顺序,在IDE上一般会有提示
    }
}

4.2 示例

4.2.1 示例1——数组作为参数

public class Calculation {
    public double getAvg(double[] scores){
        double sum = 0;
        for (double i : scores) {
            sum += i;
        }
        return sum/scores.length ;
    }
    public double getMax(double[] scores){
        double max = scores[0];
        for (int i = 1; i < scores.length; i++) {
            if(max < scores[i]){
                max = scores[i];
            }
        }
        return max;
    }

    public static void main(String[] args) {
        double[] scores = {12,35,62,3,23,4};
        Calculation calculation = new Calculation();
        System.out.println("最大值为:"+calculation.getMax(scores));
        System.out.println("平均值为:"+calculation.getAvg(scores));
    }
}

4.2.2 示例2——对象作为参数

package cn.kgc.test05;

public class Teacher {
    String name;
    String pwd;
}
package cn.kgc.test05;

public class Student {
    String name;
    String  pwd;

    public void add(Teacher teacher){
        this.name = teacher.name;
        this.pwd = teacher.pwd;
        //this代表对自己的引用
    }

    public static void main(String[] args) {
        Teacher teacher = new Teacher();
        teacher.name = "张三";
        teacher.pwd = "1234";
        Student student = new Student();
        student.add(teacher);

        System.out.println("姓名:"+student.name+"密码:"+student.pwd);
    }
}

5.包

5.1 包概述

        包(package)用来放置类,当在一个工程中需要有同名的类时,这时后可以使用不同的包来放置这些同名类(注意跨类调用其他包同名类,会优先使用其他包的,与编译读取顺序有关);使用包可以更好的保护类和它的属性,更易于整理和维护

5.2 创建包

5.2.1 类中表明所属的包

        package 包名;

        一般都放在类文件首行

5.2.2 包名的命名规则

        1.一般使用全小写字母

        2.一般前缀为公司域名倒写

5.2.3 快速创建包

        在src下创建Java Class时可以直接创建一个包内的类

5.3 导入包中的类

5.3.1 导入其他包中类的语法

        在package下方,类的上方写

        import 包名.类名;

5.3.2 不同的方式

(1)导入系统包中的某个类

        例如 常用的Scanner

        import java.util.Scanner;

        java.util是包名,Scanner则是一个类

(2) 导入自定义包中的某个类

        例如 在另一个包cn.kgc.test03中的类Card

                import cn.kgc.test03.Card

(3)导入某路径下的包的所有类

        例如导入java.util包内的所有类

        import java.util.*

        *表示所有类

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java中类的方法 的相关文章

  • 为什么使用 Hibernate 和 Oracle 10g 方言通过 JPA 创建名为 hibernate_sequence 的序列?

    我所有的实体都使用这种类型 Id Id GeneratedValue strategy GenerationType SEQUENCE generator MYENTITY SEQ SequenceGenerator name MYENTI
  • 如何在JNA中填充结构体数组?

    我正在尝试在 JNA 中使用以下 Windows API UINT WINAPI GetRawInputDeviceList Out opt PRAWINPUTDEVICELIST pRawInputDeviceList Inout PUI
  • Java 中的简单 Kerberos 客户端?

    Google Chrome 和 IE 等应用程序可以透明地处理 Kerberos 身份验证 但是我找不到一个 简单 的 Java 解决方案来匹配这种透明度 我发现的所有解决方案都需要存在 krb5 conf 文件和 login conf 文
  • 将一串数字转换为数组

    我在创建将数字字符串转换为数组的程序时遇到问题 我知道这里有一个类似的问题 但我所要做的只是一组数字 例如 10 15 16 0 57 438 57 18 这是我到目前为止所拥有的 import java util Scanner publ
  • 媒体对象上的 javafx UNKNOWN 持续时间

    我是 Java 和 JavaFX 的新手 过去几年我一直在使用 QT 在 Python 上进行开发 现在我正在使用 Java 和 JavaFX 进行开发 我正在开发一个程序 可以为用户设定的时间播放音乐文件 然后停止 因此 我需要从媒体对象
  • Java可以用来写Win32系统服务吗?

    标题有点概括了 我正在考虑使用Jabaco http www jabaco org因为它生成 EXE 以及 jar 文件 而且我对 VB 语法比对 Java 更熟悉 你当然可以用Java 服务包装器 http wrapper tanukis
  • 如何在 JPA/Hibernate 中找出实体是否分离?

    有没有办法查询JPA实体管理器给定实体是否分离 这个帖子 https stackoverflow com questions 2779857 how to know if a detached jpa entity has already
  • @AfterReturning 方面在切入点方法的同一事务中执行?

    我需要在执行函数后执行任务 我为此使用了 Aspect 但我有些困惑 我在 Spring 服务中有一个函数 A Transactional readOnly false isolation Isolation DEFAULT propaga
  • 什么是运行时绑定?

    根据 Android 开发者指南 Intent 是一个提供运行时绑定独立组件之间 例如两个活动 什么是 运行时绑定 继承创建类型兼容性 它允许超类引用 引用子类的对象 反过来则不然 超类引用 指的是 子类的对象 只能用于 访问继承的和重写的
  • 关于final关键字的java基础知识

    方法中可以使用final关键字吗 绝对地 这final关键字几乎可以应用于任何事物 在每种情况下都意味着 您无法再更改它 这就是它应用于时的含义 一个变量 您根本无法为变量分配新值 将其呈现为constant 当然 a method 您不能
  • Java:检查数组的相等性(顺序无关紧要)

    我有两个String数组 比方说 String s1 a b c String s2 c a b 这些数组应该相等 我想以 最干净 的方式检查它们的相等性 我尝试使用Arrays equals s1 s2 但我得到了一个错误的答案 我想这个
  • 用java.nio在内存中写入文件?

    使用 nio 可以映射内存中的现有文件 但是是否可以仅在内存中创建它而不在硬盘驱动器上创建文件 我想模仿 CreateFileMapping 窗口函数 它允许您在内存中写入 Java 中有等效的系统吗 目标是写入内存以便另一个程序 c 读取
  • 在 onClick 处理程序的活动类 [...] 中找不到方法 [...](View)

    当我按下按钮时fragment main xml 出现这个错误 java lang IllegalStateException Could not find a method sendMessage View in the activity
  • 如何向 XML DOM 对象添加命名空间前缀?

    我正在尝试使用特定的命名空间构建 XML 文档 我尝试生成的最终文档应该如下所示
  • 如何使用 Spring 使用注释执行基于构造函数的依赖注入?

    好的 如果我需要在构造函数中放入一些原始值 我该怎么做 Autowired public CustomBean String name Qualifier SuperBean SuperBean superBean super this s
  • BufferedReader 跳过第二行

    从 CSV 读取数据时 它会每隔两行跳过一次 我有两个 CSV 文件 一个用于用户 一个用于属性 密钥 ID 是用户 String userName static String breakLine n n Method to create
  • 如何为所有测试初始化​​一次 Spring applicationContext

    我有一组基于需要 spring 上下文的测试 为了快速执行测试 我想确保 Spring 上下文仅初始化一次 然后所有测试都应该针对该上下文运行 然后应该关闭 我已经尝试过以下方法 Use RunWith SpringJUnit4ClassR
  • 保存新图像时,它会保留旧画布

    我有一个画布 允许用户绘制和保存 它还允许用户更改颜色并在同一画布上使用不同的颜色进行绘制 我的绘画课 package com test testing import android content Context import andro
  • RMI服务器异常

    当我尝试运行使用远程注册表的服务器时 我收到以下来自 RMI 的异常 我的 Server2 类中 main 方法的注册表代码是 Registry registry LocateRegistry getRegistry 192 168 1 4
  • Java 8 并行流和 ThreadLocal

    我试图弄清楚如何在 Java 8 并行流中复制 ThreadLocal 值 所以如果我们考虑一下 public class ThreadLocalTest public static void main String args Thread

随机推荐

  • 微信中发现的问题,做一分析(见同目录其他文)

    1 基本语法 这包括static final transient等关键字的作用 foreach循环的原理等等 今天面试我问你static关键字有哪些作用 如果你答出static修饰变量 修饰方法我会认为你合格 答出静态块 我会认为你不错 答
  • linux 网络编程---->多路复用:select实例!

    好吧 我承认找了好久 网上都没有像样的完整的实例 然后自己参照书自己写一个吧 gt server 端代码 gt server c include
  • 上传图片的方法(大白话讲解)

    上传图片的方法 在上传文件的时候需要知道其原理 因为我们的数据库是无法存储数据的 所以我们只能使用地址来找 所以数据库中应该村的是文件路径 其次上传图片是属于上传文件的一种方式 所以也要学会上传文件的方法 在之后呢也要注意上传图片和对象的关
  • allowedOriginPatterns和allowedOrigins方法有什么不同

    allowedOriginPatterns 和 allowedOrigins 都是用来设置允许跨域请求的来源 其中 allowedOriginPatterns 是在 Spring 5 3 版本引入的新方法 而 allowedOrigins
  • qt layout 颜色_Qt开源作品6-通用视频控件

    一 前言 在之前做的视频监控系统中 根据不同的用户需要 做了好多种视频监控内核 有ffmpeg内核的 有vlc内核的 有mpv内核的 还有海康sdk内核的 为了做成通用的功能 不同内核很方便的切换 比如pro直接改一个DEFINE的变量名
  • Liunx下Intel无线网卡驱动安装

    首先查看网卡型号 指令 lspci grep i net 如果是Intel的无线网卡 可以参考以下方法 1 在这个页面中查找对应的无线网卡型号 以我的8260为例 前面是型号 后面是最低系统内核版本 往下翻可以查看各个型号的下载链接 系统内
  • 用户id生成规则_阿里/网易/美团/58用户画像中的ID体系建设

    前言 梳理完标签画像体系的业务需求后 作为数据产品经理 就要开始了对画像体系的整体设计 其中首要遇到的就是用户ID体系的打通相关的问题 公司各业务线ID繁多 数据割裂 如何才能尽可能关联更多的数据 以准确的描绘出一个用户的画像呢 接下来我们
  • MySQL的系统数据库

    information schema 用途 存储数据库对象相关信息 例如用户表 列 权限 字符集 分区等 表 TABLES 提供了关于数据库中表的信息 含视图 SHOW TABLES FROM DatabaseName的结果取自该表 COL
  • QT CREATOR 插件开发:添加新的工程类型(下)

    Core BaseFileWizard 类Core BaseFileWizard在 coreplugin basefilewizard h 文件中声明 class CORE EXPORT BaseFileWizard public IWiz
  • java重试 retryContext.getRetryCount

    添加依赖
  • 编程初学者在c语言中常犯的10个编译错误

    注意 这些错误都是我在devcpp5 11环境下经常出现的错误 1 引用变量未声明 Error a was not declared in this scope include
  • sqlite3中的execute与executemany

    预备知识 数据查询语言DQL 数据操纵语言DML 数据定义语言DDL 数据控制语言DCL 其中DQL为 select语句 数据操纵语言DML主要有三种形式 1 插入 INSERT 2 更新 UPDATE 3 删除 DELETE 使用exec
  • tensorflow使用

    tf reduce mean tf reduce mean 函数用于计算张量tensor沿着指定的数轴 tensor的某一维度 上的的平均值 主要用作降维或者计算tensor 图像 的平均值 reduce mean input tensor
  • 权限管理+安全框架shiro+密码加密器

    目录 1 权限管理 1 1 什么是权限管理 1 2 什么是身份认证 1 3 什么是授权 2 shiro框架 2 1什么是shiro 2 2 为什么使用shiro 简单 安全 2 3 shiro的核心组件 2 4 使用shiro完成认证 in
  • linux下Source /etc/profile不生效

    在linux下开发时 我们会经常安装很多环境 因为环境多 我们需要将其配置成全局命令 这样才好操作 配置成全局命令时 有一种方式是比较常用的 vim etc profile 增加配置信息 然后source etc profile是之生效 的
  • Java参数-Xms和-Xmx的区别

    java内存堆栈不够用时我们会寻求java参数 Xms和 Xmx的帮助 网上也有许多前辈给出了例子 但很多人喜欢把 Xms和 Xmx的值设置成一样的 甚至我还见过有吧 Xms设的比 Xmx还要大 Xms是最小值 Xmx是最大值 一开始我也不
  • Java中的网络编程

    文章目录 Java中的网络编程 一 网络编程 1 1网络编程的概念 1 2网络编程面临的问题 1 3网络编程的要素 二 IP 2 1IP的概念 2 2IP地址 2 3IP地址的分类 2 4测试IP地址 2 5java中测试IP的常用方法 三
  • EDA课程期末考试题(通信信工)

    eda没上过考试也能过 题目 1 图2中的7400 在我的博客EDA第一次课 1117电路图的绘制 中 已经大致讲过器件库如何加器件了 然后我再写下这几个图 我们现在创建一个PCB文件 点击file new project PCBproje
  • 【数据库创建与管理】【基本操作】

    文章目录 创建数据库 使用Studio创建 使用T SQL语言创建 管理数据库 使用SSMS 修改数据库存储容量 改名 删除 分离 附加 使用T SQL 修改 删除 分离 附加 创建数据库 使用Studio创建 右键 数据库 gt 新建数据
  • Java中类的方法

    目录 1 类的方法 1 1 方法的语法结构 1 2 方法的返回值 1 3 类的方法调用 2 成员变量和局部变量 2 1 变量的作用域 2 2 成员变量和局部变量 4 带参数的方法 4 1 定义 4 2 示例 5 包 5 1 包概述 5 2