
正文
[零基础学JAVA]Java SE面向对象部分-06.面向对象基础(01)
java面向对象数据类型
摘要:本季介绍了面向对象与面向过程的区别,重点阐述了类与对象的关系及JAVA中如何定义类和使用对象。之后又详细讲解了对象的引用传递和垃圾的产生。面向对象是JAVA中最核心,最重要的部分,在此概念非常多,需要反复理解。
面向对象是JAVA中最核心,最重要的部分,在此概念非常多,需要反复理解。
此次目标是整个Java SE面向对象基础部分的目标哈,一共划分七个季讲解哈,同时会辅以大量的练习来巩固所学知识。面向对象 面向过程的区别OK,废话不多说,go on~~~
面向对象的前身是叫面向过程。面向对象 面向过程的区别??
面向对象的分析过程就可以称为类的设计。
类与对象的区别和联系:??
类是一个抽象的,是一个共性的东西??
对象是类的具体的应用,是一个个性的东西??
在面向对象中重点是类的设计。
现在我们成功定义了一个Person类,它有两个属性,分别是name和age,现在这个类有了,我们就可以使用它,重点是类的设计。要使用这个类的唯一方法就只有产生对象。我们再为其加入一个方法,例如说话方法哈~怎么加入这个说话方法呢?我们看下面
在main方法中的重点就是产生对象,对象的产生格式是:??
类名称 对象名称 = null ;??==> 声明对象??
对象名称 =??new??类名称()??==> 实例化对象??
· new就表示要开辟新的内存空间。

注意:void say()方法,在这里讲一下哈,以前我们学习的方法主要是在主方法中直接调用的哈,所以我们在方法名称前面加入了一个public static,现在我们用对象调用方法的话,可以暂时不加哈,我们以后会讲清什么时候该加public static什么时候不该加public staic哈~
我们发现姓名:王乾和年龄:26都出来了哈,这就是最基本的类和对象的程序,我们发现并不是很复杂哈,只要按规则写就可以出来哈,我们继续往下学哈~
程序详解:??
1、定义好一个类??
2、为定义好的类实例化对象??
· 声明对象:在栈内存中开辟空间??
· 实例化对象(为一个对象开辟空间),使用关键字new完成。只要有new关键字就表示在堆内存中开辟空间,在堆内存中保存各个对象的属性。而方法是保存在全局代码区里面滴。
??
3、通过对象.属性为类中的属性赋值,通过对象.方法()调用类中的方法。
我们发现,如果我们没有对对象开辟堆内存空间的话,程序执行会报NullPointerException错哈~,如果我们发现出现这个错误,我们排错时就检查对象有没被实例化。
??
NullPointerException :??空指向异常,只要是没有堆内存引用的对象,直接调用对象访问属性或方法的时候都会出现空指向异常。此异常会伴随你的开发人生。
下面如果我们再加一条代码,p2=p1;将p1的值赋给p2,这样p1和p2就都指向了堆内存中的同一个空间。这样我们无论对p1还是p2进行修改,都将对其指向的同一个堆内存空间的属性进行修改。
现在调用的p1.say();和p2.say();应该输出都是一样的内容,就是最后p2.name和p2.age所赋的值。我们验证一下效果哈。
//声明对象同时实例化对象??
Person p1=new Person();??
Person p2=new Person();

我们发现原来p2开辟的那块空间没有用处了,没用的空间我们就称其为垃圾,垃圾会被垃圾收集(GC)自动回收。—— 垃圾的产生过程。
总结:??
1、类与对象的关系??
· 类是对象的模板,对象是类的一个实例??
2、对象的创建??
·声明对象:在栈内存中声明;类名称 对象名称 = null ;??
·实例化对象:使用new在堆内存中开辟空间,保存属性;对象名称 = new 类名称() ;??
3、对象的引用传递??
4、垃圾的产生。
[零基础学JAVA]Java SE面向对象部分-18.面…
[零基础学JAVA]Java SE面向对象部分-09.面…
[零基础学JAVA]Java SE面向对象部分-21.包…
[零基础学JAVA]Java SE应用部分-23.多线程…
[零基础学JAVA]Java SE面向对象部分-13.面…
[零基础学JAVA]Java SE面向对象部分-08.面…
[零基础学JAVA]Java SE应用部分-29.Jav…
[零基础学JAVA]Java SE面向对象部分-07.面…
[零基础学JAVA]Java SE应用部分-24.多线程…
[零基础学JAVA]Java SE面向对象部分-20.异…
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-63267-1.html
俄打格鲁吉亚的时候
2000w