构造方法

1.1 概念

构造方法是一种特殊的方法,它是一个与类同名的方法。

对象的创建就是通过构造方法来完成.

其功能主要是完成对象的创建或者对象的初始化。

当类实例化new一个对象时会自动调用构造方法。

构造方法和其他方法一样也可以重载(方法名相同+参数列表不同)。

1.2 形式

有无参构造和有参构造两种

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

代码……

}

1.3 练习1:构造方法创建对象

一个.java文件中可以有多个类,但是,只能有一个类被public修饰,而且这个类名就是.java的文件名

new Person() 创建对象时,会自动调用无参构造方法

无参构造方法,默认就会存在,前提是没有含参构造

重载的构造方法中方法名可以相同,但是参数列表必须不同

package cn.qile.constructor;

public class Test1_Constructor {

public static void main(String[] args) {

//创建Person对象

//1、new Person()创建对象时,会自动调用 无参 构造方法

Person p = new Person();

//自动调用含参 的构造

Person p2 = new Person("jack");

//自动调用含参 的构造

Person p3 = new Person("jack",10);

}

}

//创建Person类

class Person{

//构造方法:修饰符 类名(){}

//2、无参构造,默认就会存在,前提是没有含参构造

public Person() {

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

}

//3、重载的构造方法:方法名可以相同+参数列表必须不同

public Person(String n) {

System.out.println("构造方法"+n);

}

public Person(String n,int age) {

System.out.println("构造方法"+n+age);

}

}

总结:

构造方法在什么时候被触发?在创建对象时触发

创建对象会触发哪个构造方法怎么决定?要看你创建对象是的参数列表,自动匹配要调用的构造方法

1.4 练习2:构造方法赋值

触发重载构造方法

构造方法给成员变量赋值

(1). 在创建对象时需要把实参传递给形参

(2).形参拿到值后再给成员变量赋值

package cn.qile.constructor;

//测试构造方法赋值

public class Test2_Constructor2 {

public static void main(String[] args) {

//创建Teacher对象测试

Teacher t = new Teacher();

//1、触发重载构造方法

Teacher t2 = new Teacher("王一博",18,100000);

//测试属性都有值了吗?有了,因为创建对象时已经给成员变量赋值了

// System.out.println(t2.name);

// System.out.println(t2.age);

// System.out.println(t2.salary);

// Teacher [name=王一博, age=18, salary=100000.0]

System.out.println(t2);//因为Teacher类中提供了toString()

}

}

//创建Teacher类

class Teacher{

String name;

int age;

double salary;

//无参构造,默认就存在,提供构造方法

public Teacher() {

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

}

//2、构造方法给成员变量赋值:在创建对象时需要把实参传递给形参n a s

//形参n a s拿到值后给成员变量一一赋值

public Teacher(String n,int a,double s) {

name = n;

age = a;

salary = s;

}

//toString() --查看属性的值

@Override

public String toString() {

return "Teacher [name=" + name + ", age=" + age + ", salary=" + salary + "]";

}

}

java oop入门_java入门(十六) | OOP(三)之构造方法相关推荐

  1. Java从入门到精通十六(函数式接口编程)

    Java从入门到精通十六(函数式接口)

  2. 深度学习入门笔记(十六):计算机视觉之边缘检测

    欢迎关注WX公众号:[程序员管小亮] 专栏--深度学习入门笔记 声明 1)该文章整理自网上的大牛和机器学习专家无私奉献的资料,具体引用的资料请看参考文献. 2)本文仅供学术交流,非商用.所以每一部分具 ...

  3. 无人驾驶汽车系统入门(二十六)——基于深度学习的实时激光雷达点云目标检测及ROS实现

    无人驾驶汽车系统入门(二十六)--基于深度学习的实时激光雷达点云目标检测及ROS实现 在前两篇文章中,我们使用PCL实现了在点云中对地面的过滤和点云的分割聚类,通常来说,在这两步以后我们将对分割出来的 ...

  4. (转)tensorflow入门教程(二十六)人脸识别(上)

    https://blog.csdn.net/rookie_wei/article/details/81676177 1.概述 查看全文 http://www.taodudu.cc/news/show- ...

  5. 生日祝福小程序_广告配音剪映零基础入门教程第二十六篇:如何给朋友制作生日祝福视频...

    经常听到小伙伴问到生日祝福视频怎么做,当然我想既然要为他人做生日祝福视频,那么这个人必定是自己身边比较重要的人,而生日又是每个人都是非常重要的,在这种充满意义的时刻,我们想给自己极其重要的人送上一份祝 ...

  6. Reflex WMS入门系列二十六:合并托盘

    Reflex WMS入门系列二十六:合并托盘 仓库管理业务实践中,对于仓库里的库存,将几个零托合并成一个托,也是比较常见的作业.Reflex WMS系统自然要能支持这种合并托盘(Merge HDs)的 ...

  7. 深度学习入门(五十六)循环神经网络——循环神经网络RNN

    深度学习入门(五十六)循环神经网络--循环神经网络RNN 前言 循环神经网络--循环神经网络RNN 课件 潜变量自回归模型 循环神经网络 使用循环神经网络的语言模型 困惑度(perplexity) 梯 ...

  8. Python爬虫新手入门教学(十六):爬取好看视频小视频

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. Python爬虫.数据分析.网站开发等案例教程视频免费在线观看 https://space. ...

  9. SQL零基础入门学习(十六)

    SQL零基础入门学习(十五) SQL函数 SQL MAX() 函数 MAX() 函数返回指定列的最大值. SQL MAX() 语法 SELECT MAX(column_name) FROM table ...

  10. java arraylist用法_Java入门系列:实例讲解ArrayList用法

    本文通过实例讲解Java中如何使用ArrayList类. Java.util.ArrayList类是一个动态数组类型,也就是说,ArrayList对象既有数组的特征,也有链表的特征.可以随时从链表中添 ...

最新文章

  1. 通过修改软链接升高 gcc 版本、降低 gcc 版本
  2. redis的基本使用笔记二
  3. 创建 Image - 每天5分钟玩转 OpenStack(21)
  4. 情感分析朴素贝叶斯_朴素贝叶斯推文的情感分析
  5. (旧)子数涵数·C语言——条件语句
  6. Ubuntu系统安装Ruby的三种方法
  7. SAP License:SAP顾问行业的生活状态实录,新人值得一看!
  8. MFCC/Filter Bank的提取流程
  9. 29.yii2 RBAC
  10. Spring 概念模型 : PathMatcher 路径匹配器
  11. html原生控件美化,HTML表单美化
  12. WSL环境下使用RV-LINK下载和调试GD32VF103程序视频教程
  13. 基于n元语言模型整句拼音汉字转换
  14. apache配置基于域名访问
  15. PPT之如何设置一个箭头围绕一个顶点旋转?
  16. Java校招基础知识总结(横扫BAT,就业经验交流会演讲稿)
  17. matplotlib 配色之内置 colormap
  18. java小程序发送模板消息
  19. 业余草分享面试题,JVM结构、GC工作机制详解
  20. Centos 单节点部署 Elasticsearch

热门文章

  1. HTTP之缓存 Cache-Control
  2. eclipse添加源码的另外一种方法
  3. javascript笔记整理(数据类型强制/隐式转换 )
  4. Web前端开发:SQL Jsp小项目(一)
  5. jsp - 9 内置对象application详解
  6. C++/CLI学习入门数组
  7. 5大AI主题,资助20-30项 | 2022腾讯AI Lab犀牛鸟专项研究计划开放申请中
  8. 视觉、语音、NLP、ML、AI安全,一家金融科技公司等你来
  9. 目标检测二十年间的那些事儿——从传统方法到深度学习
  10. 中国计算机学会CCF招聘-信息系统项目管理/技术支持