多态、Object类和 JDK常用封装类型
多态
定义:某一类事物的多种存在形态。
多态的体现:父类的引用指向了自己的子类对象。父类的引用也可以接收自己的子类对象。
多态的前提:必须是类与类之间有关系,要么继承,要么实现。通常还有一个前提,存在覆盖。
多态的好处:多态的出现提高了程序的扩展性。
多态的弊端:只能使用父类的引用访问父类中的成员。
转型:
public class Animal {
public void eat(){
System.out.println();
}
}
public class Cat extends Animal{
public void eat(){
System.out.println("猫吃鱼");
}
public void mouse(){
System.out.println("猫捉老鼠");
}
}
public static void main(String[] args) {
Animal c =new Cat();//向上转型
Cat cat=(Cat)c;// 向下转型,强转//不能把父类对象转换为子类类型。能转换的是父类应用指向了自己的子类对象时,该应用可以被提升,也可以被强制转换。多态自始至终都是子类对象做着变化。
cat.mouse();
eat(c);
}
public static void eat(Animal a){
a.eat();
}
}
多态成员
多态成员函数的特点:在编译时期:参阅引用型变量所属的类中是否有调用的方法,如果有,编译通过,没有,编译失败。在运行时期:参阅对象所属的类中是否有调用的方法。
总结:成员函数在多态调用时,编译看左边,运行看右边。
成员变量的特点:无论编译与运行,都参考的左边。
静态成员函数的特点:编译和运行,都参考左边。
Object类
它是所有对象的间接父类;该类中定义的所有对象都具备的功能。无参构造:object()
equals()方法:java认为所有的对象都具备比较性,都能比较大小。
String str="328";
String str1="123";
System.out.println(str);//地址为com.rf.th.demo.Cat@7852e922
System.out.println(str1);//地址为com.rf.th.demo.Cat@4e25154f
System.out.println(str.equals(str1));//地址完全相同则为true,反之flase equals(x==y返回true)
JDK常用封装类型
Scanner类
可以通过Scanner类来获取用户的输入。
初始化一个scanner对象Scanner scanner=new Scanner(System.in);
//获取字符串String s=scanner.next();
//判断语法boolean b=scanner.nextBoolean();//next后面的数据类型首字母大写。
//关闭输入对象scanner.close(); Java Number类
number数据类型:byte、integer、long、double、float、short。 //while(true){
String str=JOptionpane.ShowInputDialog("1111")////避免死循环
system.out.println();
}
String str=scan.nextlinr();// 可以输入空格隔开的两段字符 Integer in=new Integer("123556");//可以转化为数字类型的字符串。
Integer与int区别:
Integer默认值为空(null),包装类;
int默认值为0,是基本数据类型;
Math
Math对象是js提供给我们用于运算的方法的集合.
abs(x)返回数的绝对值。
exp(x)返回 e 的指数。
max(x,y)返回 x 和 y 中的最高值。
min(x,y)返回 x 和 y 中的最低值。
pow(x,y)返回 x 的 y 次幂。
random()返回 0 ~ 1 之间的随机数。
sqrt(x)返回数的平方根。
valueOf()返回 Math 对象的原始值。
Java Character 类
Character是char的包装类
isLetter()是否是一个字母
isDigit()是否是一个数字字符
isWhitespace()是否是一个空格
isUpperCase()是否是大写字母
isLowerCase()是否是小写字母
toUpperCase()指定字母的大写形式
toLowerCase()指定字母的小写形式
toString()返回字符的字符串形式,字符串的长度仅为1
String 类型
字符串比较:compareTo;compareToIgnoreCase(//忽略大小写)
查找字符串最后一次出现的位置:lastIndexOf
截取字符串出现:substring
字符串替换:replace ;replaceFirst ;replaceAll
字符串反转:StringBuffer
字符串查找:indexOf
字符串分割:split
字符串小写转大写:toUpperCase
字符串优化
1. 直接使用字符串 String str = "123"; String str1 = "123";
2. 使用 new 关键字 String str2 = new String("123");
连接字符串
StringBuffer起拼接连接作用,安全性高,速度效率慢 StringBuilder速度效率高,安全性低
String str="早上好";
int age=18;
StringBuffer sb =new StringBuffer();//线程安全
for(int i=0;i<2;i++){
sb.append(str);
sb.append(age);
}
System.out.println(sb);
Dete(Java时间)
Date date=new Date();
SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss E M月第 W周 2017年第D天");
String time=sf.format(date); //format方法是继承父类java.text.DateFormat的方法
System.out.println(time);
System.out.println(date.before(date));\\时间不是静态的,所以不能用类名Date.
System.out.println(date.getTime());
date.setTime(12);// 设置时间
System.out.println(date.getTime());
多态、Object类和 JDK常用封装类型的更多相关文章
- 第10章 接口、继承与多态----Object类
在Java中,所有的类都直接或间接继承了java.lang.Object类.Object类是比较特殊的类,它是所有类的父类,是Java类层中的最高层类.当创建一个类时,总是在继承,除非某个类已经指定要 ...
- 第九节 java7JDK的常用封装类型
一.Java Scanner类 /初始化一个 scanner 对象. Scanner scanner = new Scanner(System.in); //判断语法 boolean b = scan ...
- java Object类是可以接收集合类型的
废话不多说,上代码: package com.core.test; import java.util.ArrayList; import java.util.HashMap; import java. ...
- (1)抽象类 (2)接口 (3)内部类 (4)Object类
1.抽象类(重点)1.1 抽象方法的概念 抽象方法就是指不能具体实现的方法,也就是该方法没有方法体,使用abstract关键字修饰如: public abstract void cry(); 1.2 ...
- Object类的toString()和equals()方法
我们知道,Object类是所有类的父类,因此也被称为根类.祖先.那么,我们就来看一看Object类的最常用的两个方法是如何用的. 1.toString方法: Object类的toString()方法默 ...
- Java基础之Java常用类--Object类,字符串相关类,包装类,日期相关类,数字相关类
Java是一种面向对象的语言,也就是将万事万物可以描述为对象,特点如下: 1.面向对象是常见的一种思考习惯,符合人们的思考习惯.2.面向对象的出现,将复杂的事情简单化.3.面向对象的出现,将之前过程中 ...
- 【Object类、常用API】
Object类 1.1 概述 java.lang.Object类是Java语言中的根类,即所有类的父类.它中描述的所有方法子类都可以使用.在对象实例化的时候,最终找的父类就是Object. 如果一个类 ...
- Java 基础 常用API (Object类,String类,StringBuffer类)
Java API Java 的API(API: Application(应用) Programming(程序) Interface(接口)) Java API就是JDK中提供给我们使用的类,这些类将底 ...
- day 21 封装,多态,类的其他属性
封装 封装:将一些数据,重要的信息等等放到一个地方(空间中) class A: country = 'China' area = '深圳' def __init__(self,name,age): s ...
随机推荐
- 001-project基本使用
一.概述 Project工具一般用来管理一个项目,制定项目的执行计划.这个项目可以是临时性的工作,可以是IT项目.工程类项目,也可是结婚这一事情,项目的特点是产生唯一性的成果或最终结果. 项目的三要素 ...
- HDU1506: Largest Rectangle in a Histogram(最大子矩阵,好题动态优化左右边界)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1506 刚开始没考虑时间复杂度,直接敲了,直接tle了,之后没有思路,然后看题解,看见大神写的优化非常棒. ...
- Linux基础以及简单命令
1. UNIX是什么 UNIX是一个计算机操作系统,一个用来协调.管理和控制计算机硬件和软件资源的控制程序.特点:多用户和多任务 2. GNU项目与自由软件 GPL条款是为保证GNU软件可以自由地使用 ...
- 常用的Issue解决方案(EF框架)
1.提交出错:ObjectStateManager 中已存在具有同一键的对象. ObjectStateManager 无法跟踪具有相同键的多个对象. 遇到此问题,首先要确定的是主键是否赋值,以及 ...
- HDU - 6311 Cover (欧拉路径)
题意:有最少用多少条边不重复的路径可以覆盖一个张无向图. 分析:对于一个连通块(单个点除外),如果奇度数点个数为 k,那么至少需要max{k/2,1} 条路径.将奇度数的点两两相连边(虚边),然后先 ...
- Microservice 概念
一天我司招财猫姐(HR 大人)问我,你给我解释一下 Microservice 是什么吧.故成此文.一切都是从一个创业公司开始的. 故事 最近的创业潮非常火爆,我禁不住诱惑也掺和了进去,创建了一家公司. ...
- Android平台利用OpenCL框架实现并行开发初试
http://www.cnblogs.com/lifan3a/articles/4607659.html 在我们熟知的桌面平台,GPU得到了极为广泛的应用,小到各种电子游戏,大到高性能计算,多核心.高 ...
- C语言中 ln(以自然对数e为底) lg(以十为底) 以及logab(以a为底,b为真数)的相关知识
总所周知,我们在高中学过对数函数,记作y=logax.下面是百度百科关于对数函数的描述: 对数的定义:一般地,如果ax=N(a>0,且a≠1),那么数x叫做以a为底N的对数,记作x=logaN, ...
- Block作为返回值时的使用
昨天使用一个小例子简单说明了下Block作为参数时的使用. 今天再来复习一下Block作为返回值使用时的情况,先贴一小段热门第三方框架Masonry的官方sample code: [view1 mas ...
- Git使用的常用命令
一.git工作流程 Workspace工作区:是当前工作目录,可以在此目录编辑文件 Index缓存区:add指令,保存文件的改动 Repository仓库:commit指令,将多次的文件改动最后提交 ...