“面向对象”的编程思想3
类的第三个成员 ----- 构造器(也称为构造方法)
咳咳,还记得我们在前面的文章里说过类的成员有两个,一个是属性,一个是方法。那木呢,今天,我们的类有多了一个小伙伴,那就是构造器。啊哈哈哈哈哈哈哈,那木它有啥特征,又是干啥滴呢?
特征:
一、首先哈!它的名字和类的名字是保持一致的,对的,你没有听错。类叫啥,我就叫啥。啊哈哈哈哈哈哈哈!
二、它呢,不需要返回值,也就是不能有return语句啦!
咳咳,那木它有啥作用呢,害,其实,他就是创建对象,然后给对象进行初始化的。嘿嘿
害,我还是写代码吧,emmmmm
public class Person {
public Person () { //这个呢,就叫做构造器,也就是构造方法,
age = 18;
name = "小黑";
//然后呢,只要以下出现了名字和年龄这两个属性,那木他们的初始值就会变成18岁和小黑。
}
public String name;
private int age;
public void printName() {
System.out.println("名字是:"+ name);
}
public void printAge() {
System.out.println("年龄是:"+ age);
}
}
这个构造器呢,还是可以带参数的。想不到吧,啊哈哈哈哈哈哈哈!
public class Person {
public Person (itn x,String y) { //就像这个样子,emmm
age = x;
name = y;
}
public String name;
private int age;
//然后在main里面创建对象的时候就要这样写了 Person p = Person(18,“小黑”);
//这样就能在创建对象的时候进行初始化了。
}
- 这个时候呢,认真看过前两章的小伙伴,肯定有提出疑惑的了。
- “咳咳,那个木木呀,前面你说了方法是可以重载的,那木这个构造器也是方法,那这个构造器是不是也可以重载呢。”
- 嘿嘿,可真是个聪明的小伙伴呢,莫得问题哈,这个构造器也是可以重载滴。
public class Person {
//嘿嘿,这样,你就能完成构造器的重载了。
public Person () {
age = 18;
name = "小黑";
}
public Person (int x) {
age = x;
}
public Person (String y) {
name = y;
}
public Person (int x,String y) {
age = x;
name = y;
}
}
关键词 ----- this
咳咳,又来一个关键字啦!!!!注意注意。。。
有的书上说呀,这个this关键字呢,是很难理解的,大家就当他在放 * 哈!!不要怕,走,跟木木爬开他的面具吧!!
this呢, 它代表的就是 当前对象 ,它呢,可以调用当前类的属性呀’、方法呀还有构造器。
这个时候肯定有人了说了 no picture you say a JB? 啊哈哈哈哈,真的是怕了怕了,来人,上代码!
public class Person {
//我们暂且先举个简单的例子,利用this来引用我们的属性成员。
public String name; //类的属性成员
private int age;
//我们可以看到哈,在构造器里面,形参的名字和属性名字重复了。那谁代表谁呢。
public Person (int age , String name) {
this.age = age;
this.name = name;
}
//this呢,表示这个类,那木this.age当然是表示这个类的成员啦,后面的age就表示这个构造器里面的形参。
}
- 咳咳,讲一万遍,看一万遍,不如自己动手打一次。
- 真的哦,木木亲测有效,啊哈哈哈哈哈哈哈!!!!童叟无欺。
JavaBean
- 害,有人一看,蒙了,这啥呀。咳咳,莫怕,它就是Java语言写成的可重用组件啦!
- 咳咳,所谓的JavaBean就是指符合一些标准的Java类,那是啥标准呢?
- 第一、这个类呢,是公共滴。(就是public修饰的)
- 第二、有一个无参的公共的构造器。
- 第三、要有属性,这里一般都是私有属性,且有对应的get、set方法。
public class Person {
private String name;
private int age;
public Person (int age , String name) { //构造器
this.age = age;
this.name = name;
}
public String getName() { //get方法
return name;
}
public void setName(String name) { //set方法
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int a) {
if(a <= 150 && a >= 0) {
age = a;
}else {
System.out.println("输入的年龄不符合逻辑!!");
}
}
- 看,就是这个样子。
- 咳咳,这个时候呢,爱挑事的小伙子又有问题了。
- “我要是有一百个属性成员,那我不是要打两百个方法,那不是累死。”
- emmmm,写肯定是要写的。但是考虑这一点,人家Java语言早就给你安排上了。啊哈哈哈哈哈哈哈,想不到吧。
- 先设置好私有属性成员,然后右击空白处,选择Source,然后再选择Generate Getters and Setters。
- 进去后√上你设置的私有属性变量就ok啦!!
- 然后按下ok,就全部帮你搞定啦!!
- 是不是超级方便呢!!!!啊哈哈哈哈哈哈哈。
- 害,到这里,面向对象这一章,就先过一段落啦!!明天开始,就要从新的知识开始学习啦。
- 还是那句话,看是学不会的,一定要自己亲自动手去打代码,出结果,那才是自己真正得到的。
- 加油,朋友!!!