java oop入门_java入门(十六) | OOP(三)之构造方法
构造方法
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(三)之构造方法相关推荐
- Java从入门到精通十六(函数式接口编程)
Java从入门到精通十六(函数式接口)
- 深度学习入门笔记(十六):计算机视觉之边缘检测
欢迎关注WX公众号:[程序员管小亮] 专栏--深度学习入门笔记 声明 1)该文章整理自网上的大牛和机器学习专家无私奉献的资料,具体引用的资料请看参考文献. 2)本文仅供学术交流,非商用.所以每一部分具 ...
- 无人驾驶汽车系统入门(二十六)——基于深度学习的实时激光雷达点云目标检测及ROS实现
无人驾驶汽车系统入门(二十六)--基于深度学习的实时激光雷达点云目标检测及ROS实现 在前两篇文章中,我们使用PCL实现了在点云中对地面的过滤和点云的分割聚类,通常来说,在这两步以后我们将对分割出来的 ...
- (转)tensorflow入门教程(二十六)人脸识别(上)
https://blog.csdn.net/rookie_wei/article/details/81676177 1.概述 查看全文 http://www.taodudu.cc/news/show- ...
- 生日祝福小程序_广告配音剪映零基础入门教程第二十六篇:如何给朋友制作生日祝福视频...
经常听到小伙伴问到生日祝福视频怎么做,当然我想既然要为他人做生日祝福视频,那么这个人必定是自己身边比较重要的人,而生日又是每个人都是非常重要的,在这种充满意义的时刻,我们想给自己极其重要的人送上一份祝 ...
- Reflex WMS入门系列二十六:合并托盘
Reflex WMS入门系列二十六:合并托盘 仓库管理业务实践中,对于仓库里的库存,将几个零托合并成一个托,也是比较常见的作业.Reflex WMS系统自然要能支持这种合并托盘(Merge HDs)的 ...
- 深度学习入门(五十六)循环神经网络——循环神经网络RNN
深度学习入门(五十六)循环神经网络--循环神经网络RNN 前言 循环神经网络--循环神经网络RNN 课件 潜变量自回归模型 循环神经网络 使用循环神经网络的语言模型 困惑度(perplexity) 梯 ...
- Python爬虫新手入门教学(十六):爬取好看视频小视频
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. Python爬虫.数据分析.网站开发等案例教程视频免费在线观看 https://space. ...
- SQL零基础入门学习(十六)
SQL零基础入门学习(十五) SQL函数 SQL MAX() 函数 MAX() 函数返回指定列的最大值. SQL MAX() 语法 SELECT MAX(column_name) FROM table ...
- java arraylist用法_Java入门系列:实例讲解ArrayList用法
本文通过实例讲解Java中如何使用ArrayList类. Java.util.ArrayList类是一个动态数组类型,也就是说,ArrayList对象既有数组的特征,也有链表的特征.可以随时从链表中添 ...
最新文章
- 通过修改软链接升高 gcc 版本、降低 gcc 版本
- redis的基本使用笔记二
- 创建 Image - 每天5分钟玩转 OpenStack(21)
- 情感分析朴素贝叶斯_朴素贝叶斯推文的情感分析
- (旧)子数涵数·C语言——条件语句
- Ubuntu系统安装Ruby的三种方法
- SAP License:SAP顾问行业的生活状态实录,新人值得一看!
- MFCC/Filter Bank的提取流程
- 29.yii2 RBAC
- Spring 概念模型 : PathMatcher 路径匹配器
- html原生控件美化,HTML表单美化
- WSL环境下使用RV-LINK下载和调试GD32VF103程序视频教程
- 基于n元语言模型整句拼音汉字转换
- apache配置基于域名访问
- PPT之如何设置一个箭头围绕一个顶点旋转?
- Java校招基础知识总结(横扫BAT,就业经验交流会演讲稿)
- matplotlib 配色之内置 colormap
- java小程序发送模板消息
- 业余草分享面试题,JVM结构、GC工作机制详解
- Centos 单节点部署 Elasticsearch