java的构造特点_JAVA学习第八课(构造函数及其特点)

构造函数:

构造函数,就是在构建 创造对象 时所调用的函数,作用就是给对象进行初始化

特点:

1.函数名和类名相同

2.不需要定义返回值类型

3.没有具体的返回值

作用:给对象进行初始化

注意:

1.默认构造函数的特点

2.多个构造函数是以重载的形式存在的

代码演示:

class man

{

private int age;

private String name;

man()//定义一个man类的构造函数

{

System.out.println("sun");

}

public void fun()

{

System.out.println(name+" "+age);

}

}

public class Main

{

public static void main(String[] args)

{

man jo = new man();

}

}

打印 sun、

PS:一个类中如果没有定义过构造函数,那么该类中会有一个默认的空参数构造函数

如果在类中定义了指定的构造函数,那么类中的默认构造函数就没有了

特别注意:如果定义了有参的构造函数,那么默认构造函数的形式也构造,编译器不再自动生成

实际上:默认的空参数函数是:man(){}

比如一个类:

class test

{

}

什么也没有,但是实际上里面有一个test(){},编译器编译时会先判断有没有写构造函数,没有自动添加,有就删除默认的构造函数

构造函数,是在一创建对象的同时被调用了

一般函数和构造函数的区别:

1.构造函数:对象创建时,就会调用与之对应的构造函数,并对该对象进行初始化

一般函数: 创建对象后,需要进行函数的调用的时候才会被调用

2.构造函数,对象创建时,只调用一次

一般函数:对象创建后,想调用几次就调用几次

什么时候使用构造函数?

在描述某一事物时,该事物存在一些内容,这些内容都定义在构造函数里。

如:对象一创建,就有一个默认的年龄、姓名

示例代码:

class man

{

private int age;

private String name;

man()//定义一个man类的构造函数

{

age = 20;

name = "john";

}

public void fun()

{

System.out.println(name+" "+age);

}

}

public class Main

{

public static void main(String[] args)

{

man jo = new man();

jo.fun();

}

}构造函数的重载:

class man

{

private int age;

private String name;

man()//定义一个man类的构造函数--------------- |

{ |

age = 20; |

name = "john"; |

} |

//对象在创建前就有年龄,名字 |

|

man (int a,String s) |-------->重载

{ |

age = a; |

name =s; |

} |

man (String s) |

{ |

name =s; |

} ---------------|

public void fun()

{

System.out.println(name+" "+age);

}

}

public class Main

{

public static void main(String[] args)

{

man jo = new man();

jo.fun();

man jj = new man(1,"BLF");

jj.fun();

man jjj = new man("BLF2");

jj.fun();//打印BLF 0

}

}

PS:一个类中出现同名的函数名,必须要用的重载。

一个对象创建时如果没有调用构造函数,就意味着创建失败。

构造函数的内存分配图(如下图):对象要进堆,函数要进栈

a774e1082b65cfdbe9e28e8c273b62fe.png

构造函数细节:

构造函数,为了方便日后修改信息,所以要加set

构造函数的名前,不可加void等,加了之后就不是构造函数,而变成一般函数了(构造函数的特点2)

错误代码示例

class man

{

private int age;

private String name;

man(int a)

{

age = a;

}

//对象在创建前就有年龄,名字

man (int a,String s)

{

age = a;

name =s;

fun();

}

public void set(String s)

{

name = s;

}

public void fun()

{

System.out.println(name+" "+age);

}

}

public class Main

{

public static void main(String[] args)

{

man jo = new man();

jo.set("BLF2");

jo.fun();

}

}

这段代码的问题在于:

因为没有定义构造函数。

默认的构造函数是代码没有创建构造函数时自动添加,但是上述代码有构造函数了,但是没有man(){}找一个类型的构造函数,所以报错

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/498644.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度学习处在大爆炸时代的边缘

原作者:Alex Hickey译者:宋榕概要:人工智能(AI)、机器学习和深度学习的早期应用有望在短期和长期内分别取得的创造性和生产性效益。因此多数服务提供商正在逐步加大在深度学习上的投资。据Gartner咨询公司报道&#xf…

怎么实现java和数据库的链接_JAVA简单链接Oracle数据库,实现注册和登陆的功能

//User 用户的基本信息,也是USERINFO表中的3个列package 登陆判断;public class User {private String name;private String loginname;private String loginpsw;public String getName() {return name;}public void setName(String name) {this.name name;}public…

AI在行动:改变科学界的人工智能

来源:世界科学概要:社交媒体拥有数以亿计的用户,他们每年发布数以千亿计的微博和帖子,这将社会科学推向了大数据时代。人工智能“知道”星系应该是什么样的,它把一张模糊的图像(左)变成了一张清…

java web js加版本号_[Java教程]js 比较版本号(一)

[Java教程]js 比较版本号(一)0 2016-07-03 15:00:13最近群了有人问如何比较版本号,我好奇的试了一下。比较版本号,怎么办?懒人的方法是借鉴,先查网上的资料,看看有木有直接的帮过来的。而且直接便捷的好像在茫茫"…

麦肯锡全球调研160个案例,发布5个行业34个AI应用场景

来源:全球人工智能概要:“我觉得不行!”;“我觉得可以!”这正是现在大家看待AI的两种态度。“我觉得不行!”;“我觉得可以!”这正是现在大家看待AI的两种态度。有人觉得现在去谈人工…

让计算机拥有一双眼睛,人工智能科学家已经努力了半个世纪

来源:科技行者概要:计算机算法可以从面相判断一个人的性取向,引发了对隐私、道德、伦理问题的争议。然而回过头去看,在人工智能领域,它是图像识别和机器人视觉的核心部分。最近斯坦福大学一篇论文《Deep neural networ…

php点击验证码,用PHP实现验证码功能

作者:hutuworm 来源:糊涂馋寺牐犇壳埃不少网站为了防止用户利用机器人自动注册、登录、灌水,都采用了验证码技术。所谓验证码,就是将一串随机产生的数字或符号,生成一幅图片,图片里加上一些干扰象素(防止OCR),由用户肉…

业界 | 计算芯片革命来临?英伟达谷歌入局紧逼英特尔

来源:AI科技评论概要:为了能够满足高速增长的计算需求,一些科技巨头们现在正从生物学中寻找灵感。他们正在重新思考电脑的本质,然后建造更像人类大脑的机器:神经系统里要有一个中央脑干,然后把听、说这样的…

php tp框架分页源代码,ThinkPHP3.2框架自带分页功能实现方法示例

本文实例讲述了ThinkPHP3.2框架自带分页功能实现方法。分享给大家供大家参考,具体如下:1.前端-分页代码:{$page}2.创建分页样式:如page.css 并将以下代码复制到该文件中.pages{float: right}.pages a,.pages span {display:inline…

【研究报告】城市云脑,智慧城市2.0产生背后的深层原因,两个重要特征是关键

作者:计算机博士,互联网进化论作者 刘锋到2017年,智慧城市与脑的关键词不断涌现,在互联网云脑的研究基础上,城市云脑形成更为清晰的定义,从2009年智慧地球和智慧城市提出以来,经过8年时间&#…

c# php加解密,PHP和C#可共用的可逆加密算法详解

在一些项目中要求在php中生成加密,然后在asp.net中接受过来的密码再解密,下面和大家分享一个PHP与asp.net C#可共用的可逆加密算法,感兴趣的可以参考参考。php加密算法:class DES{var $key;var $iv; //偏移量function DES($key 1…

机器人也需要拥有属于自己的性格

原作者:STEPH HAY, CAPITAL ONE译者:彭婷概要:建立信任最有效的方法之一就是在你的每一次互动中始终如一地展示你的人格的完整性。现实生活中是如此,在AI中也是如此。对话设计师Mindy Gold曾经设计出一款没有明确名称以及性别的健…

php中英文字符串长度,php 计算中英文混合字符串的长度

php 计算中英文混合字符串的长度echo ccStrLen($str),;echo ccStrLeft($str,3);function ccStrLeft($str,$len) #从左边截取中英文混合字符串{$ascLenstrlen($str); if($ascLen<$len) return $str;$hasCCereg("[xA1-xFE]",$str); #同上$hasAscereg("[x01-x…

IBM Watson 的中国生意

来源&#xff1a;财经杂志概要&#xff1a;鉴于过往&#xff0c;IBM的此次转型更具深意。这家巨头公司此次转型的任务是&#xff0c;业务架构要从软件硬件服务&#xff0c;转变为云认知行业。IBM的这场转型尚未到最终评定是否成功的阶段&#xff0c;但新的业务组合收入如果超过…

java 包含汉字,java判断字符串中是否包含汉字

java判断字符串中是否包含汉字package com.zuidaima.util;/**[email protected] www.zuidaima.com**/public class test {public static void main(String[] args) {String a "中国China";for (int ia.length(); --i>0;) {String b a.substring(i, i1);boolean …

2013-2017:中国 CV(计算机视觉)公司恩仇录

来源&#xff1a;KnowingAI知智概要&#xff1a;这是属于中国 CV&#xff08;计算机视觉&#xff09;公司的五年&#xff0c;这是属于他们的时代。2013 年新广告法还没实行&#xff0c;旷视科技为 Face 写下文案&#xff1a;「最好的人脸识别云计算平台」。2014 年是「格灵深瞳…

git php自动发布,使用 Git Hooks 实现自动部署PHP项目

最近正在寻找一种简便的自动部署代码到服务器的方式&#xff0c;然后就发现了git hooks这个方法&#xff0c;查了一些资料再自己尝试过后&#xff0c;觉得还不错&#xff0c;记录下。什么是git hooks在git上是这么介绍的&#xff1a;和其它版本控制系统一样&#xff0c;Git能在…

matlab读取时间数据,Matlab有关数据库读取及时间项的设定

Matlab有关数据库的读取需下载mysql-connector-java-5.1.26-bin.jar文件放到指定位置&#xff0c;并修改classpath.txt相关文件&#xff0c;具体可网上自行查找。看一下实例&#xff1a;conndatabase(‘photo‘, ‘root‘, ‘123321‘, ‘com.mysql.jdbc.Driver‘, ‘jdbc:mysq…

GAN还有这种操作!谷歌大脑和X实验室利用模拟条件和域适应提高机器抓取效率(附论文)

来源&#xff1a;机器人圈作者&#xff1a;Coogle Brain&#xff0c;Google X概要&#xff1a;相信大家都知道&#xff0c;通过检测和采集带有注释的视觉抓取数据集来训练现代机器学习算法可以说是非常耗时、昂贵的。相信大家都知道&#xff0c;通过检测和采集带有注释的视觉抓…

java gui 打开另一个,java – 从另一个JFrame Gui访问vars

好的,我已根据您的说法对我的代码进行了一些更改.我有3个班&#xff1a;第二类(和第一个GUI)&#xff1a;我有4个JButton – Simulare,CazParticular,Start和HandSelection,一些JLabel和3个JTextField;当我按下HandSelection按钮时,另一个框架会创建不同的内容.第三类(和第二个…