java面向对象开始一

  java语言的三大特性:平台无关性、安全性、网络移动性。

  面向对象的特性:封装、继承、多态、抽象

  (当然,抽象这个特性是编程的基础,编程的基础就是对现实事物的抽象)

  声明对象、实例化对象

  类名  对象名称 =null;//声明对象

  对象名称 = new 类名();//实例化对象

  类名 对象名称 = new 类名();

注意:在类声明的时候只是在内存栈中生成了一个名字而已,其实可以认为是不占内存的。所以当调用里面的东西的时候,常常报空指针错误,因为他不指向任何内存!

new了之后才会在内存堆里面有了对象的一席之地,这时候才真正拥有了类里面的东西,也就是这个对象真实的存在了。

  匿名对象:

  指的是没有栈空间的对象,既没有给出明确名字的对象。因此,匿名对象使用的是对内存,通过关键字new进行开辟,因为没有对应的栈内存空间引用,所以对象只能使用一次

  构造函数

  只有调用new关键字实例化对象时,才会调用构造函数。构造方法的访问修饰符与其所在类的访问修饰符一致。

  注意,在一个类中如果我们显示的声明了一个构造函数,那么程序在编译时就不会再生成默认的构造函数了。所以在定义类的时候,若要显示的写出有参构造函数,最好也要写上午餐构造函数。

  java中构造方法不能直接调用构造方法,如果需要在构造方法中调用另一个构造方法,可以使用this关键字(后面讲解)。

  创建对象的根本途径就是使用构造器,通过调用类的某个构造器来构造需要的类的实例,也即是对象。

  类是一种引用数据类型,如Person p = new Person();  变量p实际上是一个引用,被存放到栈内存中,指向实际的Person对象;而真正的Person对象存放在堆内存中。引用型变量仅仅是指向了堆内存的对象。

  当一个对象创建成功后,此对象就保存在堆内存中,Java不允许直接访问该对象,只能通过该对象的引用操作该对象。

原文地址:https://www.cnblogs.com/2589-spark/p/3446657.html