Java中类的方法

目录

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.*

        *表示所有类

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值