• 四、成员方法、构造方法、普通代码块、构造代码块、静态代码块应用技术分享


    在上节博客中介绍了类的继承、构造函数以及静态代码块的执行顺序相关知识点,本章节主要介绍构造函数、构造代码块、成员方法的相关知识。

    一、成员方法

    1.1 概念:

    成员方法,成员方法又称成员函数,是类的实例对象的一部分,用以实现具体的业务逻辑,完成一定的功能,是实现多态的方式之一。

    1.2 代码展现形式

                [修饰符] [返回值默认为void] 成员方法 (形式参数列表)

                {

                    //业务语句

                }

    1.3 用法

    1)成员方法名与类名不同,当成员方法名相同而参数列表不同时则称之为重载(overload)。

                (2)调用形式为:类对象 .成员方法名

    1.4代码展示

    public class Person {

                String name;

                int age;

                public void say(int age)//一个int 类型参数

                {

                    System.out.println("I am "+age+"years old");

                }

                public void say(int age,String name)//两个参数,一个int,一个String

                {

                    System.out.println("I am "+name+", and I am "+age+"years old");

                }        

    }    

    1.5注意事项(方法重载时)

    (1)不能通过参数的名称区分是否为不同参数。

    (2)不能根据方法的返回值判断是不是同一个方法。

    (3)方法名相同(前提是同一个类中),如果方法名不同则不能称之为重载。

    (4)重载是为了让类对同一方法处理不同参数而提供的一种机制。

    (5)不同参数列表指的是参数类型个数、类型、顺序的不同(至少一个不同),这样才能才能称之为重载,

    否则视为同一个方法(编译时不能通过)。

    (6)使用重载原因:当定义的功能相同,但参与运算的未知内容不同,那么,这时就定义一个函数名称表示该功能,方便阅读,而通过参数列表的不同来区分多个同名函数

    二、构造方法

    2.1 概念:

    构造方法,构造方法又称构造函数,构造器,用以给类的对象参数进行初始化,本人更偏向于前两者。

    2.2 代码展现形式

    [修饰符] 类名 (形式参数列表)

                {

                    //业务语句

                }

    2.3 用法

    (1) 构造方法没有返回值

    (2)构造方法方法名必须和类保持一致

    (3)构造方法之间互相调用通过this关键字,形式为 this(参数),其中参数个数已经类型根据需求而定

    (4)new 对象时使用,用以给类的实例对象实例化,比如Person p=new Person("zhangsan"); 作用就是给对象pname属性赋初值

    2.4具体代码实现

                public class Person {

                    String name;

                    int age;

                    public Person() {

                        System.out.println("我是无参构造方法");

                    }

                    public Person(String name) {

                        this();//通过this()调用没有参数的构造方法

                    this.name = name;

                    }

                    public Person(String name, int age) {

                        this(name);//通过this(String)调用只有一个String类型的构造方法

                        this.age = age;

                    }

    2.5注意事项

    (1)任何类都至少有一个构造函数,这是因为如果没有人为为类添加构造方法那么JVM会自动为类增加一个无参的构造方法

    (2)构造方法之间调用不能用"."来连接,具体应用参考上文代码

    (3)this代表当前对象的引用。也就是说哪个对象调用所在方法,this就代表谁。

            

    三、普通代码块

    3.1 概念:

    在方法或者语句中出现的{},就称为普通代码块。普通代码块和一般代码块的执行顺序由他们在代码中的位置决定。

    3.2代码展示

                @Test

                public void test()

                {

                    {

                        int A=1;

                        System.out.println("我是普通代码块中的变量,A="+A);

                    }

                    int A=2;

                    System.out.println("我是主方法内的变量,A="+A);

                    {

                        int B=3;

                        System.out.println("我是普通代码块内的变量,B="+B);

                    }

        }

    3.3输出结果:

    我是普通代码块中的变量,A=1

    我是主方法内的变量,A=2

    我是普通代码块内的变量,B=3

         

    四、构造代码块

    4.1 概念:

    直接在类中定义且没有static关键字修饰的代码块就称为构造代码块,构造代码块在创建对象时时被调用,且每次创建对象时都会被调用,另外构造代码块执行顺序优先于类的构造函数。

    4.2 代码展现

                public class Person {

                    {

                        System.out.println("我是构造代码块一");

                    }

                    public Person()

                    {

                        System.out.println("我是构造方法");

                    }

                    {

                        System.out.println("我是构造代码块二");

                    }

                public static void main(String[] args) {

                    Person person1=new Person();

    Person person2=new Person();

                }

    }

    4.3执行结果

    我是构造代码块一

    我是构造代码块二

    我是构造方法

    我是构造代码块一

    我是构造代码块二

    我是构造方法

    五、静态代码块

    5.1 概念:

    静态代码块是使用static修饰的代码块,静态代码块的作用是为类进行初始化,JVM在加载类时会先执行静态代码块,静态代码块仅执行一次而且优先于主方法而先执行(在上一篇博客中有提到)。

    5.2代码展示

    public class Person {

                public void say()

                {

                    System.out.println("我是成员方法,我会说话");

                }

                static{

                    System.out.println("我是静态代码块,你需要先执行我。");

                }

              

            public static void main(String[] args) {

                Person person=new Person();

                person.say();

        }

    }

    5.3执行结果:

    我是静态代码块,你需要先执行我。

    我是成员方法,我会说话

    六、总结

    6.1 成员方法

    是类的实例对象的一部分,用以实现具体的业务逻辑,完成一定的功能,是实现多态的方式之一,随着对象的存在而存在随着对象的销毁而销毁。

    需要注意的是:方法名不能与类相同。

    重载时注意事项:同一个类中同名方法,但是参数列表不同。(具体讲义参考1.5)

       6.2 构造方法,用以给类的对象参数进行初始化,随着对象的存在而存在随着对象的销毁而销毁。

       6.3普通代码块:作用于仅限于局部

       6.4.构造代码块:优先于构造方法,成员方法而执行。

    6.5静态代码块:随着类的加载而加载仅执行一次,优先级别为最高。

                      

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

    到此,关于继承、构造函数、静态代码块的执行顺序相关知识点介绍完毕,谢谢您的阅读。

          

      

  • 相关阅读:
    $prufer$序列
    倍增
    二分
    英语词汇速查表
    ACM模拟赛
    Trie树
    关于军训的模拟赛-R2
    树上差分
    列队
    斜率优化dp
  • 原文地址:https://www.cnblogs.com/yueyazhishang/p/3993752.html
Copyright © 2020-2023  润新知