提到对象,我们必须要明白对象是类的一个实例,注意此对象非男女朋友的对象。而类又是一个模板,是描述一类对象的行为和状态。比如说一只银渐层猫咪是一个对象,它的状态就有颜色、品种、名称等,它的行为就是上蹿下跳、拉屎、干饭等。
Java中的对象是什么?
以上关于猫咪的举例我们官方来说叫现实对象,而在java中的对象则叫软件对象。二者是十分相似的,软件对象也有状态和行为。软件对象的状态就是属性,行为通过方法体现。
在软件开发中,方法操作对象内部状态的改变,对象的相互调用也是通过方法来完成。
Java面向对象的特性是什么?
1. Java封装
在面向对象程式设计方法中,封装(英语:Encapsulation)是指一种将抽象性函式接口的实现细节部份包装、隐藏起来的方法。
上一段代码,一起来看:
public class Student {
// 定义了私有字符串变量name
private String name;
// 定义了私有整型变量age
private int age;
// 定义了对应的get/set方法
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 static void main(String[] args) {
//创建Student类对象s1
Student s1 = new Student();
//对象s1设置set方法设置name变量为小明
s1.setName("小明");
//对象s1设置set方法设置age变量为18
s1.setAge(18);
// 通过对象s1调用get方法输出
System.out.println("我的名字叫"+s1.getName()+",现在"+s1.getAge()+"岁");
}
}
运行结果:
我的名字叫小明,现在18岁
2.Java继承
继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。
来看一组代码:
class Animal {
void eat() {
System.out.println("animal : eat");
}
}
class Dog extends Animal {
void eat() {
System.out.println("dog : eat");
}
void eatTest() {
this.eat(); // this 调用自己的方法
super.eat(); // super 调用父类方法
}
}
public class Test {
public static void main(String[] args) {
Animal a = new Animal();
a.eat();
Dog d = new Dog();
d.eatTest();
}
}
输出结果为:
1. animal : eat
2. dog : eat
3. animal : eat
3.Java多态
多态是同一个行为具有多个不同表现形式或形态的能力。多态就是同一个接口,使用不同的实例而执行不同操作,如图所示:
来看实例:
public class Animal {
public void run() {
System.out.println("动物正在跑");
}
}
public class Dog extends Animal {
@Override
public void run() {
System.out.println("狗正在跑");
}
public void eat() {
System.out.println("狗正在吃狗粮");
}
}
public class Demo {
public static void main(String[] args) {
// 创建父类指向子类
Animal animal = new Dog();
animal.run();
}
}
运行结果:
狗正在跑
面向对象这一知识点太大,包含了面向对象的分析、面向对象的设计和面向对象的编程,这三部分每一部分都是一个很大的课题,包含的知识不仅仅是编程领域,还有哲学等其他知识,我肯定达不到大师级的那种分析。上面对于面向对象编程一些基本概念的介绍是看书加上自己的理解,个人水平有限,对于面向对象的理解还不够深入,有写的不合适的地方还请留言,批评指正。