吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1477|回复: 10
收起左侧

[学习记录] Java自学笔记Day15

  [复制链接]
JXNU1999python 发表于 2021-12-1 20:56
本帖最后由 JXNU1999python 于 2021-12-2 11:08 编辑

<font face="微软雅黑" size=5 color=#660000 >
Java学习笔记Day15

一、今日学习:

面向对象第四节

二、学习目标与复习

1、含static的实例方法的调用

2、不含static的实例方法的调用

3、构造方法/函数

4、参数传递

三、学习内容

1、含有static(静态的)的实例方法的调用

类名.方法名(实参列表);

静态方法在同类中调用静态方法可以省略类名、以及类名后面的那个点,调用其他类中的静态方法不能省略类名。静态方法不能使用 类名.方法名(实参列表)来调用非静态方法。

2、没有static(非静态的),动态的的实例方法的调用

引用.方法名(实参列表);引用里面存储了对象的地址。

静态方法调用相同类中的非静态方法,必须采用引用的方式,引用之前必须创建对象,调用其他类的非静态方法也是这样,非静态方法调用非静态方法,也是必须创建对象并引用。
总结一下就是调用非静态方法必须采用引用.方法名(实参列表);无论调用者是静态或非静态,同类或不同类。

    public class Test02 {
            private int number=5;
            public static void main(String[] args) {
                    Test02 t=new Test02();//创建对象
                    t.number=3;//本类中的私有成员变量可以使用引用.变量名的方式调用
                    System.out.println(t.number);
                    System.out.println(t.getnumber());//调用本类中的非静态方法
                    Student yan=new Student();
                    System.out.println(yan.getnum());//调用其他对象中的非静态方法
                    qqnumber();//调用本类中的静态方法
                    Student.studentage();//调用其他类中的静态方法
            }
            public int getnumber(){
                    return number;
            }
            public int changenumber(){
                    Student yan=new Student();
                    System.out.println(yan.getnum());//在非静态方法中调用其他类中的非静态方法
                    return number;
            }
            public static void qqnumber(){
                    System.out.println("人生苦短");
            }
    }

3、构造方法/函数

new 构造方法名(实参列表);构造函数的函数名和对象名称相同,而且而已构成函数/方法重载,不需要在前面写void而且每个构造方法都有返回值,且不需要写return。

在对象中没有任何方法时,构造方法后,系统会给该类提供一个无参数的构造方法,建议在开发中手动的为该类提供一个无参数构造方法。

    public class Student {
            private String name;
            private String id;
            private int num;
            public Student(int num) {//构造方法1,有实参列表的构造方法
                    System.out.println(num);
            }
            public Student() {//构造方法2,这是系统默认的构造方法,用来初始化成员变量
                    System.out.println("欢迎来到英雄联盟");
            }
            public int getnum(){//获取num的方法,实例方法
                    return num;//返回值肉眼不可见,需要用相同类型的变量接受数据再输出才行
            }
            public Student(String id,String name) {
                    System.out.println(id+name);
            }
            public void Student(String name) {
                    System.out.println(name);
                    return;
            }        
    }

使用自己的构造方法时,系统默认的构造方法会失效。可以选择性初始化成员变量。

4、参数传递,传递是存在变量里面的值

    public class Test {
            public static void main(String[] args) {
                    Userage u=new Userage(20);
                    System.out.println("这里的年龄是"+u.age);
                    Test.add(u);
                    }
            public static void add(Userage u){
                    u.age++;
                    System.out.println("年龄是"+u.age);
            }
    }
    class Userage{
            int age;
            public Userage(int a){
                    age=a;
            }
    }

四、反思与问题

1、在区分这些方法的时候有些混乱

2、其实构造方法:初始化成员变量,不含static和void,方法名和对象名必须相同。

3、不含static称为实例方法,含void的方法无需返回值,构造方法的方法名必须和对象名不同。

4、至于参数传递,多敲代码就应该能理解了。

5、经实践发现,相同类中的非静态方法调用本类中的另一个非静态方法,直接使用【方法名();】即可调用,前面省略了【this.】,指向的是这个对象/类本身,调用其他对象的则需要创建对象。
6、方法调用改善,编辑于2021.12.02

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

侃遍天下无二人 发表于 2021-12-1 21:08
你这个笔记写的又不全,我问个问题,在某个类的非静态方法中调用该类的另一个非静态方法需不需要用 引用.方法名(实参列表) 调用,为什么?
不要用简单的是或否回答
coo11ooc 发表于 2021-12-1 21:39
 楼主| JXNU1999python 发表于 2021-12-1 22:56
侃遍天下无二人 发表于 2021-12-1 21:08
你这个笔记写的又不全,我问个问题,在某个类的非静态方法中调用该类的另一个非静态方法需不需要用 引用.方 ...

我等下完善一下
xinTzc 发表于 2021-12-1 23:04
加油楼主,
yntcxlong 发表于 2021-12-1 23:56
感谢分享,新手看了多少又点启发!
peanut98 发表于 2021-12-2 07:23
加油 再接再厉
wachengpf 发表于 2021-12-2 08:41
想学习下,又没有时间!
hg1135 发表于 2021-12-2 09:45
666666666
SNNS 发表于 2022-1-3 11:35
侃遍天下无二人 发表于 2021-12-1 21:08
你这个笔记写的又不全,我问个问题,在某个类的非静态方法中调用该类的另一个非静态方法需不需要用 引用.方 ...

还要导包和定义对象吧?应该
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 18:27

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表