java中存在类和对象,比如有水果这个类,这个类里面包含了很多水果,如苹果、香蕉、芒果……
当我们想吃水果的时候,不可能吃的是水果吧,吃的必须是具体的某一中水果,我们称为吃的对象,也就是具体的类
那么,我们在吃水果的时候,必须为水果这个类创建一个对象,创建成哪一种水果呢,这就是构造器的事儿了
- class Fruit{
- String name;
- Fruit(String name){
- this.name = name;
- }
- void eatFruit(){
- System.out.println("Eat " + name);
- }
- }
复制代码
我要吃苹果,就把Fruit构造成苹果,如
- Fruit apple = new Fruit("apple");
复制代码
那么,我就可以吃苹果了,如
这也是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中的那些成员就很好理解 |