博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
牛客网Java刷题知识点之构造函数与set方法、与类名同名的一般方法、构造函数中有return语句...
阅读量:5795 次
发布时间:2019-06-18

本文共 1584 字,大约阅读时间需要 5 分钟。

 

  不多说,直接上干货!

 

 

  通过

 

 

  我们对构造函数有了一个比较清楚的认识,当我们在创建对象时,我们会调用构造函数。那么我们在定义和调用构造函数时,需要注意哪些细节呢?

 

需要注意的细节:构造函数与set方法

class Person  {      private String name;      private int age;          //构造函数,初始化name      Person(String n)  {          name = n;          System.out.println(name+"age"+age);      }          //一般函数,设置name      public void setName(String n){          name = n;      }  }

  我们看到上面有两个函数,第一个是构造函数,第二个是一般方法,它们两个都是为设置name的内容,那么我们能不能用构造函数代替set方法呢,很显然,这是不行了,因为我们之前已经学习了构造函数和一般函数的区别,而set方法就是一个一般函数。构造函数在这里只是对name进行了一次初始化,之后就不再作用了,而set方法当我们需要更改名字的任何时候都可以调用。

 

 

 

 

 

 

需要注意的细节:与类名同名的一般方法

class Person  {      private String name;      private int age;        void Person(String n)  {          name = n;          System.out.println(name+":"+age);      }  }

 

 

  测试:

class PersonTest   {      public static void main(String[] args)   {          Person p = new Person("小强");      }  }

 

  结果是

  我们看到提示说无法将构造函数应用到给定类型,实际没有参数,但我们的代码中有参数“小强”,也就是说我们创建对象用的函数不是构造函数,而是一个一般函数,程序没有在Person类中找到相应的构造函数,因为我们的代码中没有定义构造函数,那么就只有默认构造函数,而默认构造函数是没有任何参数的。所以我们在以后的编程过程中一定要注意这种现象。

 

 

 

 

 

需要注意的细节:构造函数中有return语句。

class Person  {      private String name;      private int age;        Person(String n,int a)  {          if(a<0){              System.out.println("初始化不合法!");              return;          }          name = n;          age = a          System.out.println(name+":"+age);          return ;//我们在函数那里学习了,没有返回值的函数中的return语句是可以省略的      }  }

 

 

   我们来测试一下

class PersonTest   {      public static void main(String[] args)   {          Person p = new Person("小强",-1);      }  }

 

 

  我们发现了程序编译通过并且运行正常,return语句跳出构造函数,那么也就是说构造函数中有return语句。

转载地址:http://lrffx.baihongyu.com/

你可能感兴趣的文章
【QQ音乐Api】移花接木 打造自己的音乐电台
查看>>
我的友情链接
查看>>
HTML5游戏开发实践指南
查看>>
20161220L05-02和L05-04老男孩Linux运维实战培训-硬盘的基础知识介绍01和02
查看>>
100baseT,1000baseX,1000baseTX,1000baseFX分别表示的意思
查看>>
25 个免费和收费的 WordPress 电商网店的模板
查看>>
SSH-KeyGen 实现linux服务器之间免密码登录
查看>>
dajngo 常用特殊查询
查看>>
maven编译的时候排除junit测试类
查看>>
dnyArray分析,动态数组分析
查看>>
CentOS分区cfdisk
查看>>
Hive安装配置
查看>>
SEO组月测试-SEO基础问题,不看答案你能答多少
查看>>
我的友情链接
查看>>
nginx修改upstream不重启的方法(ngx_http_dyups_module模块)
查看>>
/etc/inittab文件详解
查看>>
在BAE 上用tornado 做了一个Octopress 主题的博客
查看>>
乌班图系统mysql主从备份
查看>>
一个不错的命令行参数解析类
查看>>
Go 条件编译
查看>>