栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JAVA 面向对象02-回顾方法

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JAVA 面向对象02-回顾方法

方法的定义
    修饰符返回值的类型break和return的区别
    -break跳出循环
    -return结束方法,返回一个结果参数列表:参数类型,参数名异常抛出 throws
方法的调用
    自身的调用:递归静态方法static非静态方法形参,实参值传递和引用传递
    -JAVA都是值传递this关键字:调用本类中的方法或者属性

静态方法与非静态方法

static静态方法与类一起加载非静态方法与对象有关,当类实例化为一个对象,它才存在调用方法的两种方式:类名调用,对象名调用静态方法可以互相调用非静态方法也可以互相调用静态方法不可以调用非静态方法非静态方法可以调用静态方法

Demo01类

//Demo01类
public class Demo01 {
    //main方法
    public static void main(String[] args) {
        //调用Student类中的静态say()方法
        Student.say();
        //调用Student类中的非静态say1()方法
        //Student.say1();//报错
        //解决方法,实例化new这个类
        new Student().say1();
        //但习惯上new一个对象
        //对象类型 对象名字 = 对象值(为实例化的一个对象)
        Student student = new Student();
        student.say1();
    }
    
    //1.当方法a为非静态,方法b也为非静态,a和b可以互相调用
    //2.当方法a为静态,方法b也为静态,a和b可以互相调用
    //3.当方法a为静态,方法b为非静态,a不可以调用b
    //4.当方法a为非静态,方法b也为静态,a内可以调用b
    
    //非静态方法a
    public void a(){
        b();
    }
    //静态方法b
    public static void b(){
    	//a();//报错
    }

}

Student类

public class Student {
    public static void main(String[] args) {

    }
    //静态方法
    public static void say(){
        System.out.println("学生的静态方法");
    }
    //非静态方法
    public void say1(){
        System.out.println("学生的非静态方法");
    }
}

形参,实参的关系

public class Demo02 {
    public static void main(String[] args) {
        //形参和实参的类型要对应
        System.out.println(Demo02.add(1, 2));//类名.方法名
        System.out.println(add(1, 2));//方法名
    }
    //add方法
    public static int add(int a, int b){
        return a+b;
    }
}

值传递和引用传递

引用传递:传递对象,本质还是值传递

//值传递
public class Demo03 {
    public static void main(String[] args) {
        int a = 1;
        change(a);//方法名
        Demo03.change(a);//类名.方法名
        System.out.println(a);//a = 1
    }
    //无返回值
    public static void change(int a) {
        a = 10;//改变形参a为10
    }
}
//引用传递:传递对象,本质还是值传递
public class Demo04 {
    public static void main(String[] args) {
        //new实例化一个对象
        Person person = new Person();
        //打印对象的属性
        System.out.println(person.name);//null
        //传递了person对象
        change(person);
        System.out.println(person.name);//小乔
    }
    //无返回值,形参为Person类型
    public static void change(Person person) {
        //person是一个对象,指定的是Person类,可以改变属性
        //Person person = new Person();
        person.name = "小乔";//改变了person对象的属性name
    }
}
//定义一个Person类,有一个属性:name
class Person{
    //类属性,变量
    String name;//默认为null
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/777379.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号