JXNU1999python 发表于 2021-12-1 20:56

Java自学笔记Day15

本帖最后由 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
你这个笔记写的又不全,我问个问题,在某个类的非静态方法中调用该类的另一个非静态方法需不需要用 引用.方 ...

还要导包和定义对象吧?应该
页: [1] 2
查看完整版本: Java自学笔记Day15