面向对象(Java)

面向对象

封装

提高安全性,提高复用性,把复杂的事情简单化

private 一种权限修饰符,被修饰的成员只能在本类中访问,所以private一般用来修饰成员变量

而public 则一般用来修饰成员方法

定义一个标准的JavaBean类

1、成员变量,全部用private修饰

2、构造方法,无参数构造,全参构造

3、公共的访问方式

继承

子类拥有父类的非私有成员(包括成员变量、成员方法)

Java中使用变量的规则:

遵循“就近原则”,局部位置有就使用

没有就去本类的成员位置找,有就使用

没有就去父类的成员位置找,有就使用,没有就报错

this和super的区别

this的本质是对象,从本类的开始找

super的本质是父类内存空间的标识,从分类开始找

super.成员变量,调用的是父类的成员变量

super.成员方法,调用的是父类的成员方法

在子类当中,所有的构造方法的第一行都有一个默认的super()用来访问父类的无参构造方法,例如:

public class son extends father{
    public son(){//子类当中的空参构造
        super();//可写可不写,不写的话也默认存在
        System.out.println("111");
    }
}

如果父类没有带参构造,可以通过super(参数)的形式访问父类的带参构造。

方法重写

Java中的访问权限修饰符

本类同包下的类不同包下的子类不同包下的无关类
private

默认

(什么都不写)

protected
public

总结:

private    :强调的是给自己使用

默认       :强调的是给同包下的类来使用

protected:强调的是给子类使用

public     :强调的是给大家使用

如果需要重写父类的成员方法可以在子类重写方法的上一行加上@Override便于标记起来,这句话可有可无

在使用多态的时候,父类引用不能使用子类的特有成员,如果想要使用,就要实现类型转换。

而类型转换只能在继承层次内进行转换,否则会报错。在转换之前可以通过instanceof来检查。

fina关键字,可以用来修饰类、成员变量、成员方法。

他的特点是:所修饰的类不能被继承,所修饰的方法不能被重写,所修饰的变量是一个常量,其值只能设置一次

static关键字,被static修饰的成员变量可以被奔雷所有对象共享,为了降低风险,可以同时使用final和static来修饰成员变量

抽象类

在子类中,抽象方法必须要得到重写

接口,就是提供统一规则,规范。其里面的成员方法默认(public abstract)

接口不能被实例化,需要创建子类对象来完成实例化操作。

如果接口的子类是抽象类的话,则不需要重写接口中的抽象方法

Scanner函数中,.nextInt()录入的是整数,.nextLine()录入的是字符串(以换行符结束),.next()录入的是字符串(以空白字符结束,包括换行符,空格,tab键)

sc.hasNextXxx()//判断下一个录入的数据类型(hasNextInt()就是判断下一个录入的是否是整数)

一些关于类对象的函数:

Object类

.hashCode()//返回的是哈希码值(多被重写后使用)

.getClass()//返回的是字节码文件对象

.toString()//返回字符串表现形式,@后面打印出来的是地址值(多被重写后使用)

Object1.equals(Object2)//比较的是两个对象的地址值(多被重写后使用)

String类

.equals()//区分大小写,判断字符串是否相等

.equalsIgnoreCase()//不区分大小写,判断字符串是否相等

.startsWith(String)//判断字符串是否以String开头

.isEmpty()//判断字符串是否为空

.charAt( i )//获取第 i 个位置的字符

.indexOf( ' c ' )//获取字符c第一次出现的索引位置 

.lastIndexOf( ' c ' )//获取字符c最后一次出现的索引位置

.substring( n )//截取从索引 n 开始的所有元素

.substring( n , n1 )//截取从索引n开始到第n1个索引前的字符串(不包含第n1个)

.getBytes()//将字符串转换成字节数组

.replace( 'old' , 'new' )//将所有指定的旧字符(串)替换成i信的字符(串)

.spilt( 'c' )//切删字符串,返回切割后的字符串数据,原字符串里指定的字符会删掉

.trim()//删除字符串两端的空白字符 

Date类

.currentTimeMIllis()//获取当前系统时间到参考时间1970年1月1日00:00:00(英国时间)经历了多少毫秒

.Date()//获取当前系统的日期和时间

.Date(Long date)//传递毫秒值,把毫秒值转换为Date日期

.getTime//获取当前系统时间到1970年1月1日00:00:00的毫秒值

.SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒")//指定日期的输出格式

.format(Date)//把Date日期格式化为指定的输出格式

.get(Calendar.YEAR/MONTH/DAY)//获取年/月/日的信息(获取月份的数据时0-11个月)

Calender类是一个抽象类,如果要调用它,必须重写它的方法

包装类

装箱,把基本类型的数据转换成引用类型。

拆箱,把包装类型转换成基本类型。

//自动拆装箱

Integer i = 21;//装箱

int c = i;//拆箱

Xxx.parseXxx(String)//可以把字符串转换为Xxx的基本类型(Character类除外)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值