zoukankan      html  css  js  c++  java
  • java中的实例化

    java中的new用于实例化一个对象

    T1 a= new T1();
    T2 b= new T1();

    区别:

    问题1:不是实例化一个a,是实例化一个T1
    T1 的一个 对象的引用 a  指向了堆空间里的一个新T1对象

    ------------------------------------------

    new是java里面的关键字,一般用于创建一个新的对象。

    T1 a=new T1():表示创建一个新的T1对象

    T2 b=new T1():这种多用在接口类与实现类之间 或者子类与父类之间

    在接口类与实现类之间: T2为接口类,T1为T2的实现类

    例如:Collection,list,set,map都为接口类,都不能实例化。继承自他们的ArrayList,Vector,HashTable,HashMap,stack都是具体类,可以实例化

    Map<String, String> map = new HashMap<String, String>

    在子类与父类之间:T2为父类,T1为T2的实现类

    这些用法都为java中多态性的一个表现

    JAVA中都是用引用来操作对象,a是引用,new T1()是对象,T1 a = new T1()这段代码,则是将他们连接起来,这样就可以通过a来操作new T1()这个对象;

    java的实例化过程

    你要买一个苹果,售货员给你一个苹果;

    你要买一苹果, 相当于 --------- Apple apple = null;
    这个时候你并没有拿到苹果---------java没有给你申请内存,这个时候apple还什么内容都没有,只是告诉别人apple是个苹果

    售货员给你个苹果 ----------apple = new Apple();
    这个时候你拿到了苹果 ---------- java给你开辟了空间,并且apple可以使用苹果的特性,比如:apple.getPrice(),apple.getTaste()

    这就是apple的实例化

  • 相关阅读:
    LeetCode Path Sum II
    LeetCode Longest Palindromic Substring
    LeetCode Populating Next Right Pointers in Each Node II
    LeetCode Best Time to Buy and Sell Stock III
    LeetCode Binary Tree Maximum Path Sum
    LeetCode Find Peak Element
    LeetCode Maximum Product Subarray
    LeetCode Intersection of Two Linked Lists
    一天一个设计模式(1)——工厂模式
    PHP迭代器 Iterator
  • 原文地址:https://www.cnblogs.com/smuxiaolei/p/7716157.html
Copyright © 2011-2022 走看看