黑马程序员技术交流社区
标题:
求对构造函数的详细讲解
[打印本页]
作者:
小熊星座
时间:
2014-5-21 09:28
标题:
求对构造函数的详细讲解
本帖最后由 小熊星座 于 2014-5-22 20:40 编辑
在学习过程中,老是对构造函数的理解迷迷糊糊的,知道代码是这么这么写,但是为什么是这样排列的,代表啥意思,还是不是很懂。希望大白话给解释下。:)
class person
{
private String name;
person(String name )
{
this.name=name;
this.age=age;
}
}
作者:
屈_zi
时间:
2014-5-21 09:53
java中存在类和对象,比如有水果这个类,这个类里面包含了很多水果,如苹果、香蕉、芒果……
当我们想吃水果的时候,不可能吃的是水果吧,吃的必须是具体的某一中水果,我们称为吃的对象,也就是具体的类
那么,我们在吃水果的时候,必须为水果这个类创建一个对象,创建成哪一种水果呢,这就是构造器的事儿了
class Fruit{
String name;
Fruit(String name){
this.name = name;
}
void eatFruit(){
System.out.println("Eat " + name);
}
}
复制代码
我要吃苹果,就把Fruit构造成苹果,如
Fruit apple = new Fruit("apple");
复制代码
那么,我就可以吃苹果了,如
apple.eatFruit();
复制代码
这也是java面向对象的特点之一,你必须为这些动作赋予具体的意义,而不仅仅是代码那么简单,通过这些具体的意义才能进行有效的面向对象的设计
你的代码创建一个人的类,那么当你要访问一个人时,要怎么访问,不可能访问人这个类吧,必须是具体的一个人,怎么识别这个人,通过他的名字,什么时候指定这个人的名字,可以用方法指定,也可以用构造器指定,看具体的应用场景确定,你的代码就是用构造器指定。
你的代码的意思就是,我有一个 人的类,人有名字,在创建这个人的时候,为这个人指定一个名字
如person tom = new person("Tom");(类名首字母和类名中每个单词的首字母都要大写啊,这个person没大写,看起来怪怪的,不符合java的编程习惯)
下面的代码的意思,就是我有一个 人的类,人有名字,我先创建这个人,然后为这个人指定名字
class Person{
String name;
public void setName(String name){
this.name = name;
}
}
复制代码
Person tom = new Person();
tom.setName("Tom");
复制代码
这个效果与上面是相似的。
核心就是为代码赋予面向对象的意义,对于java中的那些成员就很好理解
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2