【java基础】java的构造函数
java构造器用于创建类的实例,是创建对象的重要途径,因此,java类必须含有一个或一个以上的构造函数
package object;
public class Car {
//如果不创建构造函数的话,系统会自动创建一个如下的无参构造函数
//此时,对象属性会赋默认值
public Car (){}
//再创建一个带一个参数的构造函数
public Car(String carName){
this.setCarName(carName);
}
//另一个带一个参数的构造函数
public Car(String carType,String carName){
this.carType = carType;
this.carName = carName;
}
/*上面两个构造器中调用的不一样,一个调用的对外提供的set方法,一个调用的是属性
*在测试页面中,利用所有的构造函数创建的对象,都能输出传入的值,
*但是,既然类中的属性被定义为private,那就说明不想被外界直接获取,
*以免传入不符合实际的值...所以应该还是加个判断,或者调用对外的set方法比较好。
* */
//定义车的属性
private String carName;
private String carType;
//对外提供的get/set方法
public String getCarName() {
return carName;
}
public void setCarName(String carName) {
this.carName = carName;
}
public String getCarType() {
return carType;
}
public void setCarType(String carType) {
this.carType = carType;
}
}
package object;
public class TestCar {
public static void main(String[] args) {
//无参
Car car1 = new Car();
//因为在Car中属性的修饰符是private
//所以只有通过get/set方法对属性取值赋值
System.out.println(car1.getCarName());
//带一个参数 this.set方法
Car car2 = new Car("野马");
System.out.println(car2.getCarName());
//带两个参数 this.属性
Car car3 = new Car("福特","野马");
System.out.println(car3.getCarType());
System.out.println(car3.getCarName());
}
}
构造器的重载:
package object;
public class Train {
/*构造函数的重载*/
public Train(){}
public Train(String type){
this.type = type;
}
public Train(String type,String color){
//this调用相应的构造函数
this(type);
this.color = color;
}
public Train(String type,String color,String longth){
//this调用相应的构造函数
this(type, color);
this.longth = longth;
}
//属性
public String type; //种类
public String color; //颜色
public String longth; //长度
//测试方法
public void trainInfo(Train t){
StringBuffer sb = new StringBuffer("这是一列");
if(t.longth != null && t.longth.length()>0){
sb.append("由"+t.longth+"辆");
}
if(t.type != null && t.type.length()>0){
sb.append(t.type+"组成的");
}
if(t.color != null && t.color.length()>0){
sb.append("颜色是"+t.color+"的");
}
sb.append("火车");
System.out.println(sb.toString());
}
//主函数
public static void main(String[] args) {
//根据不同的构造函数创建对象
Train t1 = new Train();
Train t2 = new Train("22B型客车");
Train t3 = new Train("25T型客车", "蓝白相间");
Train t4 = new Train("25T型客车", "绿色", "16");
t1.trainInfo(t1);
//这是一列火车
t2.trainInfo(t2);
//这是一列22B型客车组成的火车
t3.trainInfo(t3);
//这是一列25T型客车组成的颜色是蓝白相间的火车
t4.trainInfo(t4);
//这是一列由16辆25T型客车组成的颜色是绿色的火车
}
}
Train.java
【java基础】java的构造函数的更多相关文章
- java基础---->java中正则表达式二
跟正则表达式相关的类有:Pattern.Matcher和String.今天我们就开始Java中正则表达式的学习. Pattern和Matcher的理解 一.正则表达式的使用方法 一般推荐使用的方式如下 ...
- Java基础-Java中的堆内存和离堆内存机制
Java基础-Java中的堆内存和离堆内存机制 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.
- Java基础-Java中的内存分配与回收机制
Java基础-Java中的内存分配与回收机制 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一. 二.
- Java基础-Java中的并法库之重入读写锁(ReentrantReadWriteLock)
Java基础-Java中的并法库之重入读写锁(ReentrantReadWriteLock) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在学习Java的之前,你可能已经听说过读 ...
- Java基础-Java中的并法库之线程池技术
Java基础-Java中的并法库之线程池技术 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.什么是线程池技术 二.
- Java基础-Java中23种设计模式之常用的设计模式
Java基础-Java中23种设计模式之常用的设计模式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.设计模式分类 设计模式是针对特定场景给出的专家级的解决方案.总的来说设 ...
- Java基础-JAVA中常见的数据结构介绍
Java基础-JAVA中常见的数据结构介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.什么是数据结构 答:数据结构是指数据存储的组织方式.大致上分为线性表.栈(Stack) ...
- Java基础-Java数据类型
Java基础-Java数据类型 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.数据类型的作用 数据类型就是一组值,以及这一组值上的操作,数据类型可以决定数据的存储方式,取值范围 ...
- [Java面经]干货整理, Java面试题(覆盖Java基础,Java高级,JavaEE,数据库,设计模式等)
如若转载请注明出处: http://www.cnblogs.com/wang-meng/p/5898837.html 谢谢.上一篇发了一个找工作的面经, 找工作不宜, 希望这一篇的内容能够帮助到大 ...
- 转载:[Java面经]干货整理, Java面试题(覆盖Java基础,Java高级,JavaEE,数据库,设计模式等)
原文:http://www.cnblogs.com/wang-meng/p/5898837.html 一:继承.抽象类与接口区别.访问控制(private, public, protected,默认) ...
随机推荐
- Oracle 多行变一列的方法
多行变一列的方法有很多,觉得这个第一眼看懂了当时就用的这个办法. 情况是这样的.以下数据前几列是一样的,需要把VAT_VALUE_CHAR 的值放在同一行上. SELECT * FROM ps_vat ...
- 我的第二个FluentNHibernate例子with Knockout
在上一篇我的第一个FluentNHibernate例子的基础上,我们用上knockoutjs 1用nuget添加knockoutjs包 2用nuget添加json.net包 3..在Index.csh ...
- 纳尼,java可以在接口中实现非抽象方法了?
纳尼,接口中可以定义实例方法了?! 纳尼,接口中还可以定义静态方法了?! 没错,在Java8中新增了很多新的特性,其中就包括可以在接口中添加方法和变量. 首先我们来看下代码 public interf ...
- css设置图片的透明度
在图片的属性中加上{filter:alpha(opacity=50); -moz-opacity:0.5; -khtml-opacity: 0.5; opacity: 0.5;} opacity是 ...
- ebox学习之SD & fat 配置
fatfs可配置项很多,相关的配置均在ffconfig.h文件中 /*----------------------------------------------------------------- ...
- 2013ACM/ICPC亚洲区南京站现场赛-HDU4809(树形DP)
为了这个题解第一次写东西..(我只是来膜拜爱看touhou的出题人的).. 首先以为对称性质..我们求出露琪诺的魔法值的期望就可以了..之后乘以3就是答案..(话说她那么笨..能算出来么..⑨⑨⑨⑨⑨ ...
- 谈谈html5存储之IndexdDB
IndexdDB简介 html5中indexdDB是一种能在浏览器持久的存储结构化数据的数据库:且具有丰富的查询能力. 新建一个IndexdDB数据库 IDBOpenDBRequest定义有几个重要的 ...
- js错误
1ajax提交 从数据库里取文件typeerror: 'stepup' called on an object that does not implement interface HTMLInputE ...
- Node包管理工具
Node包管理工具 只是简单的介绍一些工具的使用,有利于开发过程.除了介绍Node包管理工具,还介绍了前端打包工具,前端模块管理工具 Node包管理工具: --npm --cnpm ...
- JavaScript基本数据类型(较易混淆的几个概念)
1. var a; typeof a; 控制台输出结果是什么? 解答:a只被声明,而未被初始化,在javascript中,未初始化的变量默认值都为undefined; 2. var s=" ...