Java对象和类
什么是面向对象
-
面向对象编程的本质是:以类的方式组织代码,以对象的性质封装数据。
-
抽象:抽取类中元素需要的共同点。例如在存储公民信息的时候,我们只用关心他们的姓名,性别,家庭住址,出生日期。而不用关心他的相貌,身高,体重等。
-
三大特性:
1.封装(将代码中的数据封装起来,对外部提供接口)
2.继承(子类继承父类的实例域和方法)
3.多态(同一个行为具有多个不同表现形式或形态的能力)
什么是对象和类
-
类:类是一种抽象的数据类型,它是对一类事物的整体描述或定义,但不能代表某一个具体的事物。
比如动物,植物,电脑,手机
-
对象:对象是抽象概念的具体实例(不是找个女朋友)。
例如张三是人的一个的具体实例,张三的狗旺财是狗的一个具体实例
对象是一个具体实例,类是抽象概念,类是对象的一个模板 Java中的对象
-
现在让我们深入了解什么是对象。看看周围真实的世界,会发现身边有很多对象,车,狗,人等等。所有这些对象都有自己的状态和行为。
-
拿一个人来举例它的状态有:名字、性别、身高体重;行为有:吃饭、睡觉、上厕所
-
对比现实对象和软件对象,它们之间十分相似。软件对象也有状态和行为。软件对象的状态就是属性,行为通过方法体现。
类的创建
-
一个类中有成员变量,构造方法,方法。 成员变量反应类的状态、属性,方法标识类的行为能力、功能
-
构建一个学生类
//student 类
public class Student {
//属性
String name;
int age;
//方法
public static void say() {
System.out.println("学生在说话!");
}
public class Demo2 {
public static void main(String[] args) {
Student.say();
}
-
静态方法与非静态方法
构造一个静态方法与非静态方法
package Demo;
//student 类
public class Student {
//属性
String name;
int age;
//静态方法
public static void say() {
System.out.println("外比巴卜!");
}
//非静态方法
public void sayHello() {
System.out.println(this.name+":老师好!");
}
public void Age(){
System.out.println(this.name+"的年龄是:"+this.age+"岁");
}
}
静态方法与非静态方法的区别
- 静态方法不需要类实例化就可以调用,反之非静态方法需要实例化后才能调用
- 静态方法只能访问静态成员和方法,非静态方法都可以访问
- 静态成员是在 第一次使用时进行初始化。非静态的成员是在创建对象的时候。
声明对象
- 要获得一个类的对象需要两步: 1.对象的声明。 类型 对象名;
- 为对象分配内存。 对象名=new 构造方法名;
例如:Person jack=new Person();
方法的调用
- 静态方法不需要类实例化就可以调用,反之非静态方法需要实例化后才能调用;
public class Demo2 {
public static void main(String[] args) {
//1.调用静态方法
Student.say();
//2.调用非静态方法
//实例化这个类new(创建对象)
//对象类型 对象名=对象值
Student zhangsan =new Student();
zhangsan.name="张三";
//zhangsan.age=18;
zhangsan.sayHello();
zhangsan.Age();
}
}
构造方法 -
- 构造方法没有返回类型,也不能写void
- 一个类即使什么都不写,也会存在一个默认的构造方法
方法的重载
- 重载就是在一个类中,有相同的函数名称,但形参不同的函数。 方法重载的规则:
- 方法名称必须相同。
- 参数列表必须不同(个数不同,或类型不同、参数排列顺序不同)
小结
- 1.类与对象:类是一个模板,对象是一个具体的实例
- 2.方法:定义、调用。
- 3.属性:成员变量 修饰符 属性类型 属性名=属性值
- 5.对象的创建和使用
-必须使用new关键词创建对象
Person zhangsan = new Person()
-对象的属性
zhangsan.name;
-对象的方法
zhangsan.say();
- 6.类
静态的属性 属性
懂爱的行为 方法
Q&A
1.简述一下面向对象的特征,并举例说明你对面向对象的理解?
2.对象和类之间的关系是什么?