A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 小熊星座 中级黑马   /  2014-5-21 09:28  /  887 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 小熊星座 于 2014-5-22 20:40 编辑

在学习过程中,老是对构造函数的理解迷迷糊糊的,知道代码是这么这么写,但是为什么是这样排列的,代表啥意思,还是不是很懂。希望大白话给解释下。:)

class person
{
     private  String  name;
     person(String  name )
     {
            this.name=name;
            this.age=age;
     }
}

2 个回复

正序浏览
java中存在类和对象,比如有水果这个类,这个类里面包含了很多水果,如苹果、香蕉、芒果……
当我们想吃水果的时候,不可能吃的是水果吧,吃的必须是具体的某一中水果,我们称为吃的对象,也就是具体的类
那么,我们在吃水果的时候,必须为水果这个类创建一个对象,创建成哪一种水果呢,这就是构造器的事儿了
  1. class Fruit{
  2.         String name;
  3.         Fruit(String name){
  4.                 this.name = name;
  5.         }
  6.         void eatFruit(){
  7.                 System.out.println("Eat " + name);
  8.         }
  9. }
复制代码

我要吃苹果,就把Fruit构造成苹果,如
  1. Fruit apple = new Fruit("apple");
复制代码

那么,我就可以吃苹果了,如
  1. apple.eatFruit();
复制代码


这也是java面向对象的特点之一,你必须为这些动作赋予具体的意义,而不仅仅是代码那么简单,通过这些具体的意义才能进行有效的面向对象的设计

你的代码创建一个人的类,那么当你要访问一个人时,要怎么访问,不可能访问人这个类吧,必须是具体的一个人,怎么识别这个人,通过他的名字,什么时候指定这个人的名字,可以用方法指定,也可以用构造器指定,看具体的应用场景确定,你的代码就是用构造器指定。

你的代码的意思就是,我有一个 人的类,人有名字,在创建这个人的时候,为这个人指定一个名字
如person tom = new person("Tom");(类名首字母和类名中每个单词的首字母都要大写啊,这个person没大写,看起来怪怪的,不符合java的编程习惯)

下面的代码的意思,就是我有一个 人的类,人有名字,我先创建这个人,然后为这个人指定名字
  1. class Person{
  2.         String name;
  3.         public void setName(String name){
  4.                 this.name = name;
  5.         }
  6. }
复制代码

  1.                 Person tom = new Person();
  2.                 tom.setName("Tom");
复制代码

这个效果与上面是相似的。

核心就是为代码赋予面向对象的意义,对于java中的那些成员就很好理解

评分

参与人数 1技术分 +1 收起 理由
Silent_memory + 1 赞一个!

查看全部评分

回复 使用道具 举报 1 0
您需要登录后才可以回帖 登录 | 加入黑马