Java面向对象——封装

3.面向对象

3.1 封装

3.1.1 new关键字

  • 实例化对象的过程可以分为两部分

    • 声明对象 Cat one

    • 实例化对象 new Cat();

声明对象是再栈里面 实例化对象是在堆里面

cat类

public class Cat {
    //成员属性 昵称,年龄,体重,品种
    String name; // 昵称
    int month; //年龄 int类型默认值0
    double weight; //体重 double类型默认值0.0
    String species; //品种
    //跑动的方法
    public  void run(){
        System.out.println("小猫快跑");
    }
    public void run(String name){
        System.out.println(name+"快跑");
    }
    //吃东西的方法
    public void eat(){
        System.out.println("小猫吃鱼");
    }
}

实现类

public class CatTest {
    public static void main(String[] args) {
        // 对象实例化
        Cat one = new Cat();
        //测试
        one.eat();
        one.run();
        one.name="花花";
        one.month=2;
        one.weight=1000;
        one.species="英国短毛猫";
        System.out.println("昵称:"+one.name);
        System.out.println("年龄:"+one.month);
        System.out.println("体重:"+one.weight);
        System.out.println("品种:"+one.species);
        one.run(one.name);
    }
}

当再次创建一个对象two操作如下

cat two=one;

时 one和tow 这两个对象在栈中用的是同一个地址值去堆内存中进行查找

当one修改了属性tow的属性也随之改变;

3.1.2 类和对象

    • 抽象的概念

    • 模板

  • 对象

    • 一个看得到,摸得着的具体实体

对象的属性和方法

  • 属性:对象具有的各种静态特征 ——对象有什么

  • 方法:对象具有的各种动态特征——对象做什么

类和对象的关系

  • 类是抽象的概念,仅仅是模板

  • 对象是一个你能看得到,摸得着的具体实体

  • 类是对象的类型

  • 对象是特定类型的数据

  • 具体开发过程中,先定义类再实例化对象

3.1.3 单一职责原则

单一职责原则

  • 单一职责原则,也称为单一功能原则

  • 英文Single Responsibility Principle 缩写SRP

  • 是面向对象设计中的一个重要原则

  • 一个类,应该有且只有一个引起变化的原因

  • 在程序设计中,尽量把不同的职责,放在不同的职责中,即把 不同的变化原因,封装到不同的类中.

3.1.4 构造方法

1,构造方法与类同名且没有返回值

2,构造方法的语句格式

3,只能在对象实例化的时候调用

4,当没有指定构造方法时,系统会自动添加无参的构造方法

5,当有指定构造方法,无论是有参,无参的构造方法,都不会自动添加无参的构造方法

6,一个类中可以有多个构造方法

3.1.5 this关键字

  • this:当前对象的默认引用

  • this的使用

    • 调用成员变量,解决成员属性和局部变量同名冲突

3.1.6 java封装

封装

  • 将类的某些信息隐藏在类内部,不允许外部程序直接访问

  • 通过该类提供的方法来实现对隐藏信息的操作和访问

  • 隐藏对象的信息

  • 留出访问的接口

特点:

1,只能通过规定的方法访问数据

2,隐藏类的实例细节,方便修改和实现

private私有的只有当前类能够调用被private修饰的变量其他类调取不到

3.1.7 static关键字

1,static+属性——静态属性

2,static+方法——静态方法

3,static+类——不存在

4,static+方法内局部变量——不存在

静态成员随类加载产生,直至类销毁才回收

注意!

1,可以直接调用同类中的静态成员

2,不可以直接调用同类中的非静态成员

3,可以通过实例化对象后,对象调用的方式完成非静态成员调用

4,静态方法中不能使用this关键字

3.1.8 包

作用:

1,管理java文件

2,解决同名文件冲突

3.4.1 定义包

语法:

package 包名;

例:package com.imooc.animal;

注意:

1,必须放在java源文件中的第一行

2,一个java源文件中只能有一个package语句

3,包名全部英文小写

4,命名方式:域名倒叙+模块+功能

3.4.2 导入包

语法:

import 包名.类名;

例:

导入包中全部类:

import com.imooc.*;

导入包中指定类:

import com.imooc.animal.Cat;

常用系统包

java.lang 包含java语言基础的类

java.util 包含java语言中各种工具类

java.io 包含输入,输出相关功能的类

3.1.9 代码块

1,通过{}可以形成代码块

2,方法内的代码块称为:普通代码块

3,类内的代码块称为:构造代码块

4,构造代码块前+static:静态代码块

代码块执行顺序

1,无论实例产生多少对象,静态代码块只执行一次

2,构造代码块随实例话过程调用

3,普通代码块随方法调用执行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值