昨天学习了面向对象的相关内容,发现有很多小伙伴都不能很好的理解。想不通为什么是这样,为什么我创建对象之后就可以把那个文件里面的东西拿来直接用?为什么我把对象作为参数传到别的方法里面我就可以把那个对象文件里面的东西直接拿来用?
所以今天开一技术贴,跟大家交流一下我对于面向对象的相理解,有不对的地方还请大家指正,共同进步。
首先,明确什么是面向对象:
面向对象思想就是不断的创建对象,使用对象,指挥对象做事情。(如果有对象,直接用对象,对我们直接提供服务)
面向对象的特点:
是一种更符合我们思想习惯的思想(懒人思想,我把事情自己不做,交给别人去做)
可以将复杂的事情简单化(对使用者来说简单了,对象里面还是很复杂的) 将我们从执行者变成了指挥者角色发生了转换 我觉得面向对象最大的特点就是——指挥;当我们想做一件事情的时候,我们可以指挥别人去做,然后得到我们想要的结果,这昂我们就可以解放自己。 我们在学习前面的知识的时候,有用到键盘录入和随机数产生,我们都创建了对象如图 //创建键盘录入对象 //创建随机数产生对象 我们在创建对象之后,我们用一个变量对我们需要的数据进行了接收,格式就是s.nextInt和r.nextInt,那小伙伴们有没有想过为什么我们创建了一个对象之后,我们就可以键盘录入或者产生随机数呢?为什么在打出r.之后后面会出现很多方法提示呢? 其实这里的格式 就是对象名.方法名的格式,点后面跟的是Random或者Scanner文件中所创建的方法。我们在创建对象的时候,这个对象也就相应的有了这个类中所有属性和方法。 同理,我们在创建了一个Student类之后,我们在Test类中创建了一个学生对象s,s也就能有Student类中所有的属性和方法,我们在使用s的时候,我们就可以通过s为我们做相应的事情。 下面来讲一下我对于对象名作为参数传递的问题。 在我们之前的学习中,我们学习到了,数据类型我们分为基本数据类型和引用数据类型,而我们经常用到的String就是引用数据类型。我们在创建String类型的参数的时候格式是String 变量名;
我们在创建对象的时候格式是类名 对象名;比如上面的Random Scanner的创建,有没有发现,格式是一样的?其实我们创建的对象就是一个变量,你可以把它当作是变量作为参数传递,而这个参数类型就是你所创建的对象的类名, 比如:Student s;我们创建的变量s就是Student数据类型的,而Student也就是引用数据类型。所以传递的时候把s当作变量进行传递就可以了 那么对于为什么传递进去之后,我们可以直接调用Student中的方法; 因为我们在创建Student对象s的时候,s就已经拥有了Student中的所有的属性和方法; 就像阿里找一个外包公司,这个公司给阿里送去一个程序员,阿里当然可以要求这个程序员写代码了。 以上就是我对与面向对象的相关看法,涉及深度可能比较前,如有错误还请大家指正,大神别见笑。欢迎大家多交流探讨。 |