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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 电饭煲 中级黑马   /  2014-3-21 00:06  /  1600 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

分别为一般类和抽象类实例化?

4 个回复

倒序浏览
本帖最后由 linweiwen 于 2014-3-21 00:47 编辑

楼主你的问题问得太随便了,感觉有歧义,不好回答啊。
我将你的问题理解为这样吧,什么是类的实例化?类的实例化分别为 一般类的实例化 和抽象类的实例化?

首先,“类”本身就是个抽象的概念,将“类”从抽象变为具体的过程,根据类定义产生相应对象的过程,就是类的实例化了。
形象点说,“人类”是一个类,抽象的,从“人类”中生出一个“小明”出来,就是类的实例化。

下面是我写的一个小程序,Student这个学生类,可以实例化出多个学生,Tom就是其中一个。

  1. public class Test2 {
  2.         public static void main(String[] args) {

  3.                 Student Tom = new Student("Tom", 14, 16);
  4.                 System.out.println("某一个Student:"+Tom.getName());
  5.         }
  6. }

  7. class Student {

  8.         private String name;
  9.         private int StudentID;
  10.         private int age;

  11.         public Student(String name, int studentID, int age) {
  12.                 super();
  13.                 this.name = name;
  14.                 StudentID = studentID;
  15.                 this.age = age;
  16.         }

  17.         public String getName() {
  18.                 return name;
  19.         }

  20.         public void setName(String name) {
  21.                 this.name = name;
  22.         }

  23.         public int getStudentID() {
  24.                 return StudentID;
  25.         }

  26.         public void setStudentID(int studentID) {
  27.                 StudentID = studentID;
  28.         }

  29.         public int getAge() {
  30.                 return age;
  31.         }

  32.         public void setAge(int age) {
  33.                 this.age = age;
  34.         }

  35. }
复制代码

上面这个程序也算是一般类的实例化了,其实也没什么一般类,
而是一般情况下,我们通过new关键字来为类的对象进行实例化。
抽象类的实例化,我个人理解,也只算是一般情况的特例而已。

因为抽象类不能实例化,要通过某个类继承它,这样又回归到一般的情况了。

类的实例化,如果真的要分类,可以参考这篇博文http://biaobiaoqi.github.io/blog/2013/09/08/initliate-objects-in-java/,讲解得很详细。

评分

参与人数 1技术分 +1 收起 理由
SyouRai_Tsk + 1

查看全部评分

回复 使用道具 举报
类的实例化就是实例一个对象,对象只有实例化之后才可以进行后面的使用的,否则是不可以使用的,就像毕老师视频里讲的,你写的类文件就像是生产汽车的图纸,里面定义了属性和功能,但是并不是汽车,要执行“生产”的操作,才能变成汽车,这个汽车就是对象,“生产”就是实例化
一般类的实例化直接new操作即可,例如:Demo demo=new Demo();
抽象类不可以直接实例化对象,要创建子类来继承,复写父类的抽象方法,然后创建子类的对象。例如:Fu f=new Zi();

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
实例对象最简单的理解方法:    比如,我今天要去买菜,没有菜篮子,我只好去买一个,而篮子不需要我来造吧,因为有人做好了,我只需要去买一个可以装菜就行了。引用到语言上是这样的:已经创建了一个用户对象,名为UserBean(),它只是一个模型,正如别人做好了篮子,我现在要用UserBean(),只要做 UserBean user=new UserBean(),这样就实例化一个对象了,但这里请记住,这里是空的user里面没有任务用户,正如,你只买了一个篮子,但没有装菜,接下来的工作就是装菜的事情了。    装菜工作就是给userBean添加上用户,调用userBean.setId(),,,等方法就可以了。整个对象实例化的过程可以这样分析,如果需要代码的话,我举个最简单的实例化一个用户对象:

  1. public class Student  //学生类
  2.   {
  3.        private int age;
  4.        public int getAge()
  5.   {
  6.      return age = 0;  
  7.   }  
  8. }
  9. public void main(string[] ages)
  10. {
  11.     Student 张三 = new Student();//此时就实例化了一个学生张三
  12.      }
复制代码


评分

参与人数 1技术分 +1 收起 理由
SyouRai_Tsk + 1

查看全部评分

回复 使用道具 举报
类的实例化,可以说是分为两步
1)声明类类型的变量 Student stu = null;
2)实例化对象变量   stu= new  Student();
抽象类
首先抽象类不能够创建对象,必须被子类继承后才能使用。因为抽象类没有方法体,无意义。
抽象类,包含抽象方法,也可以包含非抽象方法(这点和接口不一样)。如果子类没有全部的复写父类的抽象方法,那么子类还是个抽象类。
抽象类的实现,也可以使用匿名内部类,直接复写父类的抽象方法。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马