面向对象三大特性以及对类和对象的理解

来源:互联网 发布:淘宝客服图片素材 编辑:程序博客网 时间:2024/06/06 02:34

一: 面向对象三大特性:

1.封装:对外部不可见

封装的实现:java中实现封装性有多种方式,而private只是其中一种比较常用的方式.类中每一个属性都必须封装.

private 属性类型 属性名称;

private 方法返回值类型 方法名称(参数列表){}

package Nsbc.club;

public class Person {

public static void main(String[] args) {

Persons persons = new Persons();

persons .name = "nishui";

persons .age = 21;

persons.tell();

}

}

class Persons{

private String name;

private int age ;

public void tell(){

System.out.println("姓名:" + this.name +",年纪:" +this.age);//加上this代表本类中的属性或者方法

}

}

以上代码为错误代码,这体现了类的封装性(private  私有的),就是外部不可访问,但是我们设定的这些属性肯定要表示出一些实际的意义,那么这些属性就应该由外部设定,怎样访问?Java中提供了setter(设置内容)方法和getter(获得设置内容)方法,方法如下:

package Nsbc.club;

public class Person {

public static void main(String[] args) {

Persons persons = new Persons();

persons.setName("nishui");

persons.setAge(21);

persons.tell();

}

}

class Persons{

private String name;

private int age ;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

public void tell(){

System.out.println("姓名:" + this.getName() +",年纪:" + this.getAge());//加上this代表本类中的属性或者方法

}

}


2.继承:扩展类的功能

3.多态:

(1)方法的重载

(2)对象的多态性


二:类和对象

(1) 类:是对某一事物的描述,是抽象的。

(2)对象:是实际存在的,为该类事物的每个个体 ,也称为实例。

类就相当于模版,而根据模版生产出来的东西就为对象;比如:如果类为一张汽车设计图纸的模版,那么生产出来的汽车就为对象!

一个类产生之后,不能直接使用,要产生对象才能使用;

(1)类名   对象名称  =  null;//声明对象

对象名称  =  new   类名();//实例化对象就是为其开辟堆内存空间

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

声明对象:是在栈内存中声明的,跟数组一样,数组名也是存放在栈内存中的.但是只开辟了栈内存空间,对象是无法使用的,必须有其堆内存的引用才可以使用;

实例化对象:new  类名();在堆内存中开辟空间,在其内存放的变量值都为默认值(没有对变量赋值);

例如:

String:是一个字符串类型,但他本身为一个类,是一个引用数据类型,所以此时他的默认值为null;

int是一个整型,代表的是一个数,所以他是一个基本数据类型,此时的默认值为0.

对象是保存在栈内存中,属性是保存在堆内存中.在程序中方法是保存在全局代码区中的.

此区中的内容是所有对象共享的!

注意:在使用对象的时候,对象必须是被实例化之后才可以使用,而对象的实例化不仅仅只是使用new关键字实现,只要有其堆内存的空间指向,则就表示实例化成功.(如果不实例化对象,就使用它,就会发生空指向异常!)一个栈内存只能指向一个堆内存空间.


0 0
原创粉丝点击