javase和java有什么区别,java里的类和对象
00-1010 1.基本概念1.1面向对象1.2类和对象2。类定义和使用2.1定义2.2实例化3 .此引用3.1访问成员变量3.2访问成员方法3.3此引用的特征4 .施工方法4.1施工方法的特征4.2在施工方法中的这种使用的总结
00-1010首先我们需要弄清楚几个概念:什么是面向对象,什么是类,什么是对象?还是一个一个来?
目录
我们常说Java是面向对象的语言,C是面向过程的语言。什么是面向对象,它和面向过程有什么区别?
面向对象是一种解决问题的思想,其核心是依靠对象之间的交互来解决事情。
至于面向对象和面向过程的区别,假设现在有一道数学题:
面向过程:你必须自己手工计算。你需要注意应用什么公式,如何简化,从哪些条件组合中可以得出什么结论等等。即使中间有差错。
面向对象:你把问题交给计算机,让计算机来解决。我们只关注人和计算机这两个对象是如何交互的。
看似面向对象比面向过程更高级,其实两者并无区别。两者都有自己特殊的应用场景。比如数学考试,只能自己出题( )
类00-1010:一个实体的描述对象:类的实例化假设你要设计一个东西,类是你画的图,对象是你通过图创建的实物;一个类可以产生多个对象。
1.基本概念
00-1010定义类时需要使用关键字:class
具体语法如下:
类ClassName { field方法;}ClassName:类名字段:成员变量方法:成员方法我们现在定义一个类Book,其中的成员变量包括书名、作者、价格,成员方法是打印所有的成员变量。
以下概念将围绕本课程进行解释。
00-1010用于在main方法中实例化对象的关键字:new
代码如下:
Book book1=新书();然后你可以用“.”访问类中的成员变量和成员方法,如下所示:
我们之前说过,Java中的所有变量都要初始化,类中的成员变量也不例外。如果成员变量未初始化,默认值为相应数据类型的0。
整数变量为0,浮点数为0.0,布尔类型为false,引用类型为null,char为 u0000
1.1面向对象
00-1010我们现在向该类添加另一个方法setBook,并使用该方法初始化成员变量。
public void setBook(字符串名称,字符串作者,int价格){ name=name作者=作者;价格=价格;}我们再来看一下结果:
为什么都是0值?
原因是方法的参数名等于成员变量名,参数是局部变量,所以程序认为方法中的name等变量都是参数。
我们只需要把这个加到等号左边的变量就可以解决这个问题了。
这表示当前对象的引用(调用它的人就是当前对象)
上图中book1调用setBook方法,所以book1是当前对象,方法中的this.name等变量相当于告诉程序这不是方法的参数,而是对象book1的成员变量。
00-1010这个很好理解,只是
是在方法里面引用类中的其它方法,但注意一点:引用不能成环
假设setBook里面引用了show方法,那么show方法里面就不能再引用setBook,否则就乱套了
还有一点需要补充:
上面提到过一个类可以产生多个对象,那么多个对象调用同一个方法,程序如何分辨是哪个对象调用的?
依旧是this引用
类中的方法起始都有一个隐式的this参数,通过this知道是哪个对象调用的方法,也就是说setBook方法其实是有4个参数,如下:
public void setBook(Book this,String name,String author,int price) { this.name=name; this.author=author; this.price=price; }
除了访问成员方法外,this还可以调用本类其它构造方法,这一点在构造方法中再介绍
3.3this引用的特性
1.只能在成员方法中使用
2.是成员方法的第一个隐藏的参数
3.在成员方法中只能引用当前对象(在对象Book1中使用this就只能引用Book1,不能引用对象Book2)
4.为对应类的类型引用,即哪个对象调用就是哪个对象的引用类型
4.构造方法
构造方法也是成员方法,但它比较特殊,对象的初始化除了在main方法中使用.一个一个初始化外还可以使用构造方法
在实例化一个对象的时候一定会经过两个步骤:
分配内存调用合适的构造方法如果用户没有写构造方法,编译器会默认提供一个不带参数的构造方法,写了就调用用户自己写的构造方法
4.1构造方法的特点
方法名要和类名相同没有返回值,即使是写void也不行在整个对象的声明周期内只能调用一次可以重载我们写一个构造方法如下:
public Book(String name, String author, int price) { this.name = name; this.author = author; this.price = price; }
那么初始化对象如下:
4.2this在构造方法中使用
上面提到构造方法可以重载,那么我们再写一个没有参数的构造方法
public Book() { }
this在构造方法中可以调用其它的构造方法,比如我在没有参数的构造方法中调用上面的有三个参数的构造方法
注意:
this同样不能成环this必须放在构造方法的第一行
总结
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注盛行IT的更多内容!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。