Java之面向对象(上)

Java之面向对象(上)

在上学期中通过C++的学习对面向对象有一定的了解,在Java中有些语法与C++类似,也有不不同。通过面向对象这一系列的博客,说一下我对Java的面向对象的理解

Java之面向对象
一、面向对象三大特性
二、类与对象
1.类的定义
2.对象的创建与使用
3.对象的引用传递
4.访问控制
一、面向对象三大特性
封装性:把对象的属性和行为看成是一个密不可分的整体,将这两者“封装在对象中;另一层是将不想让外界知道的信息隐藏起来。
继承性:类与类之间的关系,通过继承,可以在无需编写原有类的情况下,对原有的类的功能进行拓展
多态性:在一个类中定义的属性和方法被其他类继承后,他们可以具有不同的数据类型或表现出不同的行为,这使得同一个属性和方法在不同的类中具有不同的语义。

二、类与对象
类与对象参考c++的面向对象,这里不再详细介绍,理解与之基本相似。

1.类的定义
在Java中类中可以定义成员变量和成员方法,成员变量也被称为对象的属性;成员方法用于描述对象的行为。

class 类名{
成员变量;
成员方法;
}
public class Student {
private String name;
private int age;
public Student() { }
public Student(String n) {
name=n;
}
}

在Java中,定义在类里面的变量称为成员变量,定义在方法中的变量成为局部变量。如果在某一个方法中定义的局部变量与成员变量同名,这种情况是允许的,此时,在方法中通过变量名访问到的局部变量而并非成员变量。

代码如下(示例):

class Student{
int age = 30;
void read(){
int age = 50;
System.out.println(“我” +age);
}
}

输出的age值为50,而不是30;

2.对象的创建与使用
new Student( )用于创建Student类的一个实例对象, Student stu则是声明了一个Student类型的变量stu运算符“=” 将新创建的Student对象地址赋值给变量stu,变量血引用的对象简称为stu对象。了解了对象的创建之后,就可以使用类创建对象了。
创建Student对象后,可以使用对象访问类中的某个属性或方法,对象属性和方法的访问通过“.”运算符实现。
代码如下(示例):

对象名称 = new 类名();
对象名称.属性名;
对象名称.方法名;

public class Student {
String name;
int age;
void read() {
System.out.println(“我是:”+name+”,年龄:”+age);
}
}
public class Text {
public static void main(String[] args) {
Student stu2=new Student(“张三”,18);
stu2.read;
}
}

3.对象的引用传递
public class Student {
String name;
int age;
void read() {
System.out.println(“大家好,我是”+name+”,年龄”+age);
}
}
public class Example {
public static void main(String[] args) {
Student stu1=new Student();
Student stu2=null;
stu2=stu1;
stu1.name=”w我爱我的祖国”;
stu1.age=50;
stu2.age=20;
stu1.read();
stu2.read();
}
}

从结果可以发现,两个对象输出的内容是一样的, 这是因为stu2对象获得了stul1对象的堆内存空间的使用权。,对stul对象的age属性赋值之后,通过stu2对象对age属性值进行了修改。实际上,所谓的引用传递,就是将一个堆内存空间的使用权给多 个栈内存空间使用,每个栈内存空间都可以修改堆内存空间的内容。

4.访问控制
(1) pivate: private属于私有访向权限,用于修饰类的属性和方法。类的成员一且使用了 pivale关键字修饰,则该成员只能在本类中进行访问。

(2) defaul: default 属于默认访问权限。如果一个类中的属性或方法没有任何的访问权限声明, 则该属性或方法就是默认的访向权限,默认的访问权限可以被本包中的其他类访问,但是不能被其他包的类访问。

(3) protected:属于受保护的访问权限。-个类中的成员使用了protected访问权限,则只能被本包及不同包的子类访问。

(4) public: public 属于公共访问权限。如果一个类中的成员 使用了public访问权限,则该成员可以在所有类中被访问,不管是否在同-包中。