面向对象学习

对象

软件开发过程:面向过程: 站在过程的角度思考问题,也就是功能的执行过程,也就是先做什么后做什么,过程中的函数也就是对象中的方法,强调的是函数,每个函数负责完成某一个功能,接收输入数据,函数加工处理,输出结果数据.在完成复杂功能的时候需要去不断去调用函数,就会造成适应性和可拓展性都很差,维护性也很低. 强调的是我该怎么做

面向对象: 多个模块,比如微信最重要的模块是聊天,其次会去增加支付,小视频等模块.俗称热插拔.每个模块都能够实现对应的功能,可以随时增加和删除. 强调的是该让谁来做.这里的谁就是对象.面向对象当中也包含面向过程,面向对象更加的符合常规的思维方式,稳定性好,可重用性强,更适合开发大型软件产品,维护性也好.

三大特征:封装encapsulation,继承inheritance,多态polymorphism.

成员变量:直接定义在类中,方法的外面 成员变量有默认值,也就是初始值,整形初始值为0,浮点型为0.0,char类型为空字符,布尔类型为false,引用数据类型为null

public class Demo02{
    //成员变量
    String name;
    int age;
    public void test(){
        //可以访问成员变量.
        System.out.println(age);
        System.out.println(name);
    }
        public static void main(String[] args) {
        Demo02 t = new Demo02();
        t.test();
    }
}

局部变量:存在于三个地方:方法内 方法中的形参 代码块中{}中,能形成作用域,一个{}也就是一个作用域,作用域是可以嵌套的,1.内层作用域可以访问外层作用域定义的变量,但是外层不可以访问内层的.2.同一作用域不能够定义两个同名变量3.局部变量没有默认值,所以必须先赋值

public static void main(String[] args) {
        int count = 10;//方法中的局部变量
        {
            int count1 = 20;//代码块中的局部变量
            System.out.println(count);
            System.out.println(count1);
        }
        System.out.println(count);
        //System.out.println(count1);
    }

从以往的事物总结物体的特征,行为等(也就是归类)用于认识新的事物.

类:是拥有相同特征(状态)和行为(功能)的多个事物的抽象描述

类是用来描述群体的,是对一个群体的抽象的描述

一般用成员变量来表示状态,用成员方法来表示行为

定义类的语法格式

public class 类名{//大写的驼峰命名法
    //可以编写n个成员变量,描述特征(实例变量/成员变量/类的字段)
    //[修饰符] 数据类型 变量名;
    String id;
    String name;
    int age;
    
    //编写n个方法,描述行为(也叫作成员方法/实例方法)
    public void eat(String food){
        System.out.println(name + "在吃" + food);
    }
}
对象

对象是类的一个具体实例,用于描述一个具体的个体

对象一定属于某一个类,具有该类的特征和行为

对象是独立的,唯一的个体

在程序中类可以作为一个新型的数据类型.可以使用类来声明对象

对象的本质

创建对象:

//创建一个Person类
//数据类型 变量名 = 值
//1.声明了一个person类型的变量,属于引用数据类型
Person p1 = null;
//2.申请空间
p1 = new Person();
//合二为一的写法
//创建了一个对象p2/实例化了一个person类型的实例p2
Person p2 = new Person();
//对象和对象之间是相互独立的个体,属于同一类型,相互之间没有关系

//通过对象或者实例来访问Person类中定义的成员
//设置成员变量的值
p1.id = "12345";
//读取成员变量的值
System.out.println(p1.id);
//结论:1.对象特别适合存储复杂的数据,对象时数据的载体
//2.开发者需要存储什么类型的数据,就new什么类型的对象
//3.必须先创建类,然后才能创建对象,对象才能持有数据
//4.对象持有的数据在程序运行过程中是可以改变的,对象持有的数据可以被方法加工和运算

实例变量:通过实例调用的变量

实例方法:通过实例调用的方法

构造器/构造方法

作用是用来构造对象和给对象做初始化操作;

普通方法语法:

[修饰符] 返回值 方法名(参数列表){}

构造方法语法

[修饰符] 类名(参数列表){}

1.无参构造方法

如果一个类中没有显式的定义构造方法,jvm会默认分配一个无参构造,类似于

public Person(){

//可以直接给默认值.叫做业务上的默认值

}

如果开发者显式定义了无参构造器,jvm不再分配无参构造器

2.有参构造方法

如果想在构造对象时传入自定的参数,可以考虑使用有参构造方法

如果开发者在一个类中定义了一个有参构造器,jvm不会再自动分配无参构造器

注意:在实际开发过程中,如果一个类定义或者显式定义了有参构造,一定要习惯性的把无参构造器写上

public Person(String aName,int aAge){

name = aName;

age = aAge;

}

封装

隐藏信息,尽可能隐藏对象的数据和功能的实现细节

保证数据的安全性,防止调用者随意修改数据

访问修饰符:决定了有没有权限访问某个资源

private:表示当前类私有,其他的类不能够访问

//封装步骤
//1.字段私有化
private String name;
private int age;
//2.提供统一的设置器和访问器以供外界方法使用
//设置器(set加字段名首字母大写)
public void setAge(int aAge){
    //3.业务校验
    if (aAge < 0){
        System.out.println("您输入的年龄不合法");
        age = 18;
    } else {
        age = aAge;
    }
}
//访问器(get加字段名首字母大写)
public int getAge(){
    return age;
}
public void showInfo(){
    System.out.println(name);
    System.out.println(age);
}

javaBean规范

是一个特殊类

类必须是public修饰的

必须有公共的无参构造器,即使手动提供了有参构造器,也得手动提供无参构造器

字段使用private修饰私有化,每个字段必须提供一对setget方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值