zoukankan      html  css  js  c++  java
  • Java

       结束C语言的学习后,由面向过程到面向对象编程的转变,不知道是不是都有点不太适应,如果没有的话,我应该就是属于那类的少数人群,这阵子零散的学习,并没有在Java里收获足够的东西。说起对Java最初认识因为GUI界面的魔幻(当然这只是我最最之前的认识,那时候还是一个计算机相关之外的人)。再然后就是面向对象了,那么我写下这篇博客记录一下自己的认识。起初是看了马士兵老师的视频,他有一段关于面向对象与面向过程的比较的描述,第一种描述:“一个人去新疆,他要先找到一辆车,然后上车,加油门,路过A,路过B,最后到达新疆”。第二种描述:“一个人开着车到了新疆” 。第一种描述是用面向过程的实现,而第二种的描述就是面向实现的实现(这两种描述是我依据印象写下的,更详细具体的描述请查看尚学堂马士兵老师的网课)。当时我听后真的有感觉,面向对象也许这正是我们需要的最合理的处理问题的方式。

      也许你已经知道了,使用“new 类名()”这样的格式可以创建一个对象,那么,在使用了“new 类名()”这样一句话后我们的程序究竟干了什么?

    package test1;
    
    public class T1 {
        T1(){
            System.out.println("召唤我干啥???!!!");
        }
        void say(){
            System.out.println("hello ,i'm coming!");
        }
    
    }
    package test1;
    
    public class T1test {
        public static void main(String[] args){
            T1 a=new T1();
            a.say();
        }
    }

      这是一个包里的项目,想必,你也一定猜出了运行结果吧

    没错!

    召唤我干啥???!!!
    hello ,i'm coming!

    不知道你是否感觉到一丝的奇妙之处,我在这里仅仅是调用了对象

    T1 a=new T1();

    居然在生成对象a的同时把T1类下的T1()方法给使用了...那么,我就在这里做下一个小小的总结吧。一个类下有一个与类同名的方法,在生成该类的对象并为其开辟空间时,会同时调用这个与类名同名的方法,而且当这个方法有形参时候,在生成对象时候也必须带上参数。(很多情况下,源码的类下并没有一个与类名同名的方法,但实际上系统还是会自己添加一个且没有形参,且在开辟空间时不做任何动作)

    例如:

    package test1;
    
    public class T1 {
        
        T1(int n){
            System.out.println("是的"+n);
        }
        void say(){
            System.out.println("hello ,i'm coming!");
        }
    
    }
    package test1;
    
    public class T1test {
        public static void main(String[] args){
            T1 a=new T1(5);
            a.say();
        }
    }

       

    (补充: 当使用运算符new时,将创建给定类的实例(对象)、为它分配内存、调用给定类定义的一个特殊方法)

  • 相关阅读:
    仿google的suggest
    renderjs主动发起通讯
    数据库设计原则(转载)
    SqlBulkCopy批量插入
    NPOI使用word模板
    visual studio 2010与NUNIT集成调试
    bond
    linux 内核参数优化
    Linux清除用户登陆及历史命令
    nginx 常用请求
  • 原文地址:https://www.cnblogs.com/zhangzimu/p/6803189.html
Copyright © 2011-2022 走看看