Java中的类、对象、封装、抽象类和final的概念
面向对象复习
面向对象复习
我想新学java的同学也和我一样我吧,在各种抽象封装多态继承中纠结,然后学着学着是不是一句那啥要彪出口了,手动摸摸狗头。这里是我的一点收集,希望能给大家一点帮助。
1、**面向对象的概述**
面向对象是一种思想,思考的是“谁来帮我做”,其中的谁就是对象。
面向对象的好处:
1、符合人们思维习惯的思想
2、将复杂的事情简单化
3、从任务执行者变成了指挥者
2、**面向对象和面向过程的区别**
面向过程也是一种思想,思考的是“我该怎么做”,所有的事情都是自己来做,强调的是过程
3、**类与对象**
类是对象的抽象的表现形式,是对象中一系列的属性和行为的集合
对象是类的具体实例
类 Student
对象 new Student("张三");
4、**成员变量和成员方法**
现实中的事物有属性和行为
类中用成员变量和成员方法分别有对应
成员变量:类中方法外
5、**构造方法**
作用:
1、创建对象
2、给对象的成员变量进行初始化
public Student(String name,int age){
this.name = name;
this.age = age;
//return;
}
特点:
1、没有返回值类型,连void都没有
2、方法名和类名一致
3、方法体中可以有return;语句,但是没有返回值这个可以省略
6、**封装**
隐藏类的属性或者类中实现的细节
private修饰类的成员变量
方法
成员变量一上来应该用private修饰,提高安全性
说到封装就要提到控制访问修饰符了
在Java中有这几个
Public 公开
Protected 同包和子类
缺省 同包
Private 同类
7、**this**
含义:this表示当前对象的引用,谁来调用方法,方法中的this就代表谁
作用:
1、当局部变量和成员变量重名时,用this.来区分这是成员变量
public class Student{
// 成员变量
// 姓名
private String name;
// 年龄
private int age;
// 构造方法
public Student(){
}
public Student(String name,int age){
this.name = name;
this.age = age;
}
// getters和setters方法
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 study(){
System.out.println("学生学习");
}
}
8.**抽象类** :
类可以继承抽象类extends , 是类统一具有的行为的集合,抽象类只是一种稍微特殊的类而已
抽象类表达了 :cat 具有 eat 的行为
规则 : 成员方法可以有方法体,可以包含非抽象方法,但抽象的方法和接口中的方法一样,必须在子类中实现,没有方法体
抽象类可以实现多态
抽象的成员自动为 public
定义 : 1) 抽象类 abstract class Animals{}
2) 继承 public class Dog extends Animals
9.**final**
final可以修饰变量或者方法
在某些情况下,程序员可能有以下需求,
一,当不希望父类的某个方法被子类覆盖时,可以用final的关键字修饰。
二,当不希望类的某个变量的值被修改,可以用final修饰。
三,当不希望类被继承时,可以用final修饰。
给成员变量赋值
(1)对象名.成员变量 = 值;
(2)set方法赋值
(3)构造方法
匿名对象
创建对象
数据类型 对象名 = new 数据类型();
Student s = new Student();
s.sleep();
s.study();
匿名对象就是没有名字的对象
new 数据类型();
new Student();
new Student().sleep();
new Student().study();
匿名对象一般是使用一次的时候选择