Java 快速入门 知识精简(4)面向对象-封装

封装与隐藏

封装的作用:

高内聚:类的内部数据操作细节自己完成,不允许外部干涉。

低耦合:仅对外暴露少量的方法用于使用。

封装的含义:

隐藏对象内部的复杂性,只对外公开简单的接口。

便于外界调用,从而提高系统的可扩展性、可维护性。

说明:

1)避免使用"对象.属性"的方式对属性进行赋值。

2)需要将属性声明为私有的(private),通过方法对属性赋值。此时,对于属性就体现了封装性。

封装的实现:

1)将类的属性xxx私有化private

2)提供公共的public方法来获取和设置此属性的值

// 定义属性

private double radius;

// set方法 : 设置属性的值

public void setRadius(double radius){

        this.radius = radius;

}

// get 方法 : 获取属性的值

public double getRadius(){

        return radius;

}

说明

体现一:不对外暴露私有属性。

体现二:单例模式(将构造器私有化)

体现三:如果不希望类在包外被调用,可以将类设置为缺省的。

权限修饰符

Java规定的四种权限修饰符

权限从小到大顺序为:

private < 缺省default < protected < public

修饰符的修饰范围

修饰符

类内部

同一个包

不同包的子类

同一个工程

private

Yes

缺省

Yes

Yes

protected

Yes

Yes

Yes

public

Yes

Yes

Yes

Yes

修饰的结构说明

1)修饰属性、方法、构造器、内部类。四种权限都可以

2)修饰类class的话,只能使用:缺省、public

封装类

Wrapper包装类的使用

Java提供了8种基本数据类型相应的引用数据类型包装类封装类

含义

基本数据类型封装成为

说明

1)使得基本数据类型的变量具有类的特征。

2)有了类的特点,就可以调用类中的方法,Java才算是真正的面向对象

掌握:基本数据类型、包装类、String三者之间的相互转换

基本数据类型

包装类

父类

byte

Byte

Number

short

Short

Number

int

Integer

Number

long

Long

Number

float

Float

Number

double

Double

Number

boolean

Boolean

——

char

Character

——

JDk 5.0新特性:自动装箱与自动拆箱

包装过程::基本数据类型==对象

示例:

public class Test{

        public void main(String... args){

                Order order = new Order( );   

                System.out.println(order.isMale);            // 打印结果:默认值false

                System.out.println(order,isFemale);        // 打印结果:空值null

        }

}

class Order{

        boolean isMale;

        Boolean isFemale;

}

基本数据类型转换包装类:调用包装类的构造器

int num1 = 10;

Integer in1 = new Integer (num1);

System.out.println (in1.toString( ));

Integer in2 = new Integer (123);

System.out.println (in2.toString( ));

包装类转换基本数据类型:调用包装类XxxxxxValue( ) 方法

Integer in3 = new Integer (12);

int num2 = in3.intValue( );

System.out.println(num2+1);

装箱和拆箱

自动装箱基本数据类型转换包装类

int num1 = 10;

Integer in1 = num1;          // 自动装箱

boolean b1 = true;

Boolean b2 = b1;              // 自动装箱

自动拆箱包装类转换基本数据类型

System.out.println(int1.toString( ));

int num3 = in1;         // 自动拆箱  in1是Integer类型

public void method (Object obj){

        System.out.println (obj);

}

基本数据类型、包装类转换String类型

调用String重载的valueOf (Xxx xxx)

int num1 = 10;

方法一:连接运算:

String str1 = num1 + “”;

方法二:调用String的valueOf (Xxx xxx);

float f1 = 12.3f;

String str2 = String.valueOf (f1);

String类型转换基本数据类型、包装类

调用包装类的parseXxx (String s) 方法

String str1 = 12;

int num1 = Integer.parseInt (str1);

System.out.println (num1+1);

String str2 = true1;

boolean b1 = Boolean.parseBoolean (str2);

System.out.println (b1);

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tangy范

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值