1.
实用类: 01.枚举 enum
Student stu=new Student();
我们为了保证用户一个健康的输入! 我们使用了封装特性!
用户就不能直接访问我们的属性了!! private char sex;
提供了一个对外访问的接口! getSex() setSex(char sex)
在setSex()中书写我们的逻辑!如果用户输入的不健康,有默认值! 001.枚举是一种数据类型,名称就是enum!
public class Hello{}
public interface Hello{}
public enum Hello{} 002.可以限定用户的输入
虽然之前学的封装,能保证我们数据的准确性!但是阻挡不了用户的输入!
003.所有的 枚举值 都是static final 修饰的(静态常量)
004.构造方法必须是私有的! 防止外部访问! 02.基本数据类型对应的包装类(封装类)
包装类:
001.基本数据类型能点出来方法吗? 不能!! 对应的包装类可以!
002.集合中可以存放基本数据类型吗? 不能!! 对应的包装类可以!
003.就是把基本数据类型转换成对象!
004.所有的包装类都是由fianl修饰的,不能创建子类
005.在基本数据类型需要用对象来表示的时候使用
006.jdk1.5之后,允许了基本数据类型和包装类的混合算术运算 byte Byte
short Short
int Integer
long Long
float Float
double Double
上面的六种,都是数值类型! 都继承了Number类!
然后Number实现了Serializable接口! boolean Boolean
char Character
他们两个都实现 了Serializable接口! 如果有个方法让我们传递一个Serializable类型的参数!
我们可不可以传递8种基本数据类型的封装类呢? 可以! 装箱和拆箱操作 (基本数据类型和对应的包装类做转换)
装箱:把基本数据类型转换成对应的包装类
拆箱:把包装类转换成对应的基本数据类型 基本数据类型中叫: 自动类型转换和 强制类型转换
引用数据类型中叫: 向上转型和向下转型! 03.Math
001.java.lang包下的一个算术类!
002.是final修饰的
003.除了构造方法之外的所有方法都是静态的!可以通过类名直接访问 天花板函数
ceil 天 向上取整
floor 地 向下取整 04.Random
随机数
2.枚举
/**
* 学生的实体类
*/
public class Student { private String name;
private Gender sex; // 枚举类型的性别 public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public Gender getSex() {
return sex;
} public void setSex(Gender sex) {
this.sex = sex;
} public Student(String name, Gender sex) {
super();
this.name = name;
this.sex = sex;
} public Student() {
super();
} @Override
public String toString() {
return "Student [name=" + name + ", sex=" + sex + "]";
} }

student

/**
* 针对于性别的枚举类
*/
public enum Gender { // 需要创建枚举值
MAN("男"), WOMAN("女"); private String genderSex; private Gender(String name) {
this.genderSex = name; } public String getGenderSex() {
return genderSex;
} public void setGenderSex(String genderSex) {
this.genderSex = genderSex;
} }

Gender枚举

public class EnumTest {

    public static void main(String[] args) {
// 创建学生对象
Student stu = new Student();
// 通过set()给stu对象赋值
stu.setName("小黑黑");
stu.setSex(Gender.WOMAN); // 只能是MAN和WOMAN
System.out.println(stu.getName() + "的性别是:"
+ stu.getSex().getGenderSex()); } }

Test

3.包装类

import org.junit.Test;

public class PackageTest {

    // 所有的封装类 都有将对应的基本数据类型作为参数的方法 来构造实例
@Test
public void test01() {
/**
* Float有三个实例化构造方法 分别是 传递 double float String
* 其他的数值类型都是两种构造!
* Character只有一个构造!
*/
Byte a = new Byte((byte) 1);
Short s = new Short((short) 1);
Integer b = new Integer(5);
Long l = new Long(1);
Float f = new Float(2);
Double c = new Double(5);
// 上面的六个封装类都继承了Number
Boolean boolean1 = new Boolean(true);
Character character1 = new Character((char) 1);
Character character2 = new Character('1'); } /**
* 六个封装类继承了Number
* 用String来构造实例的时候,String中存放的必须是数值类型的字符串
* 除了Character来构造实例的时候,没有String类型的参数!
* 其它7种封装类 都可以传递一个Stirng类型的变量,来构造实例!
* 注意点:
* Stirng类型的变量必须能转换成数值类型,否则会抛出异常(NumberFormatException)!
*/
@Test
public void test02() {
Byte a = new Byte("1");
Short s = new Short("1");
Integer b = new Integer("1");
Long l = new Long("1");
Float f = new Float("1");
Double c = new Double("1");
// 除了大小写的true 其它都返回false
Boolean boolean1 = new Boolean("");
System.out.println(boolean1);
// 编译报错 Character character1 = new Character("1");
} /**
*除了Character,都有对应的parse的方法
*/
@Test
public void test03() {
Integer i = new Integer("5");
System.out.println(i + 1);
System.out.println(Integer.parseInt("54321") + 1);
// 转换进制 把2进制的1011转换成10进制的数字
System.out.println("10对应的2进制:" + Integer.parseInt("1011", 2)); /** String num = "27";
System.out.println(Integer.parseInt(num) + 1);
Double.parseDouble("20");
Byte.parseByte("1");
Short.parseShort("1");
System.out.println(1 + 1 + "2"+1); // 221
System.out.println("1" + (1 + 2)); // 13
*/
} @Test
public void test04() {
System.out.println(Integer.toBinaryString(28)); // 转换成2进制
System.out.println(Integer.toHexString(28)); // 转换成16进制
System.out.println(Integer.toOctalString(28)); // 转换成8进制
} /**
* valueOf
* 把基本数据类型转换成对应的封装类
* 除了Character没有传递String类型的参数
*
* xxxValue
* 把xxx类型转换成xxx对应的基本数据类型
*/
@Test
public void test05() {
// 基本数据类型和对应封装类之间的转换 我们称之为 装箱和拆箱操作
int a = 5;
Integer integer = Integer.valueOf(a); // 装箱 把基本数据类型a转换成了包装类integer
integer.intValue(); // 拆箱 把包装类integer转换成基本数据类型 Double d = Double.valueOf(20.0);
double h = d.doubleValue(); Character character = Character.valueOf('a');
character.charValue();
} @Test
public void test06() {
int a = 127;
int b = 127;
System.out.println(a == b);
} @Test
public void test07() {
Integer a = new Integer(1);
Integer b = new Integer(1);
System.out.println(a == b);
} @Test
public void test08() {
/**
* Integer a = 127;
Integer b = 127;
System.out.println(a == b); //true
*/ Integer a = 128;
Integer b = 128;
/**
* 01.128是int类型 是基本数据类型
* 02.a是integer类型 是包装类
* 03.想把基本数据类型转换成包装类
* 04.就需要使用valueOf(128)
* 05.观看底层代码得知
*
public static Integer valueOf(int i) {
assert IntegerCache.high >= 127;
if (i >= IntegerCache.low && i <= IntegerCache.high)
return IntegerCache.cache[i + (-IntegerCache.low)];
return new Integer(i); 当我们传入的值 大于127或者小于-128就会创建新对象
}
*/
System.out.println(a == b);
} }

包装类

4.Math     Random

public class MathTest {

    public static void main(String[] args) {

        System.out.println("向上取整:" + Math.ceil(20.001));
System.out.println("向下取整:" + Math.floor(20.999));
System.out.println("四舍五入:" + Math.round(20.5));
System.out.println("四舍五入:" + Math.round(20.4));
System.out.println("最大值:" + Math.max(5, 20));
System.out.println("最小值:" + Math.min(20.4, 0.1));
System.out.println("绝对值:" + Math.abs(-52));
System.out.println("绝对值:" + Math.random());
/**
* Math.random() 底层是执行了Random类中的nextDouble()
*
public static double random() {
Random rnd = randomNumberGenerator;
if (rnd == null) rnd = initRNG();
return rnd.nextDouble();
}
*/ } }

Math

import java.util.Random;

public class RandomTest {

    public static void main(String[] args) {
// 创建随机数对象
Random random = new Random();
for (int i = 0; i < 100; i++) {
// System.out.println(random.nextBoolean());随机输入boolean值
// System.out.println(random.nextDouble()); 返回0-1但不包含1的随机小数
// System.out.println(random.nextInt()); 返回int类型最小值到最大值之间的随机整数
// System.out.println(random.nextInt(10));返回0-10之间的整数 不包含10
} } }

Random

枚举,Math和Random的更多相关文章

  1. java Math和Random和UUID

    Math类 public final class Math extends Object 以下X表示double,float,int, long abs(X x):求绝对值 max(X x1,X x2 ...

  2. 10、匿名内部类、枚举类、日期、Math、Random、String、equals、StringBuffer、包装类、对象数组、克隆,标准输出3

    1对象的克隆(clone) 单纯的同类的两个对象a0 a00,a0=a00只是栈指向同一个堆,而不是开辟两个新堆,修改其中一个,另一个也会受牵连. 需要重写Clone()方法,并且实现Cloneabl ...

  3. JavaScript的几种Math函数,random(),ceil(),round(),floor()

    1.Math.random():返回 0 ~ 1 之间的随机数.2.Math.ceil():返回值:返回大于或等于x,并且与之最接近的整数(如果x是正数,则把小数"入":如果x是负 ...

  4. string、math、random、datetime类

    1.string类 变量.Replace("想要替换掉的字符或字符串","转换后的字符或字符串");//替换 练习:判断邮箱格式是否正确            ...

  5. 类库探源——System.Math 和 Random

    一.System.Math Math类:为三角函数.对数函数和其他通用数学函数提供常数和静态方法 命名空间: System 程序集 :   mscorlib.dll 继承关系: 常用属性: Math. ...

  6. Java基础知识强化81:Math类random()方法之获取任意范围的随机数案例(面试题)

    1. 需求:设计一个方法,可以实现获取任意范围内的随机数 分析:使用方法random()如下: public static double random() 注:Returns a pseudo-ran ...

  7. Java基础知识强化80:Math类random()方法的小扩展(控制产生目的数字的概率)

    1. Math.random()方法: Math.random()出现的数据是0.0<= x < 1.0之间,随机出现一个数据Math.random()>0.1概率是0.9 那么如下 ...

  8. Java SE基础部分——常用类库之Math和Random类(随机产生数值)

    //20160518 Math类常用方法 练习 package MyPackage; public class MathDemo {//定义主类和main方法 public static void m ...

  9. java--jdk api中其他对象(System,Runtime,Calendar,Math,Random,Date)

    转载请申明出处:http://blog.csdn.net/xmxkf/article/details/9796729 day18-01-其他对象(System) SystemDemo java.lan ...

随机推荐

  1. DRF中的APIView、GenericAPIView、ViewSet

    1.APIView(rest_framework.views import APIView),是REST framework提供的所有视图的基类,继承自Django的View. 传入到视图方法中的是R ...

  2. docker下debian镜像开启ssh, 允许root用密码登录

    用的官方python镜像做开发, 暴露端口, 用pycharm ssh进去开发. 忽然发现本来ssh能连上, 但是更了新的python镜像连不上了. 有折腾了一下, 连上了. 主要是python官网镜 ...

  3. SVN下载项目导入到eclipse中出现错误解决办法:

    首先要确定settings.xml配置路径正确 (下面是我自己的路径,设置自己的路径) 用客户端暴力解决方法: 1)把本地中工作空间中内容删除重新下载 2)导入到eclipse中 会出现一些问题 右键 ...

  4. Spring AOP 理论

    一.AOP AOP 产生的背景 “存在即合理”,任何一种理论或技术的产生,必然有它的原因.了解它产生的背景.为了解决的问题有助于我们更好地把握AOP的概念. 软件开发一直在寻求一种高效开发.护展.维护 ...

  5. English trip EM2-LP-6A Teacher:Julia

    课上内容(Lesson) How many children are in the family? there are 16 kids How old is the oldest child? He' ...

  6. 基于windows使用fabric将gitlab的文件远程同步到服务器(本地)

    # -*- coding: utf-8 -*- from fabric.api import env, run, local, put from fabric.operations import su ...

  7. android -------- Eclipse选择NDK路径时 “Not a valid NDK directory”

    在 Eclipse选择NDK路径时 出现 “Not a valid NDK directory”  这样的错误 解决方式1 在你安装的ndk的主目录下创建一个ndk-build空文件,然后重新打开对话 ...

  8. P4426 [HNOI/AHOI2018]毒瘤

    挺不错的一个题. 题意即为求一个图的独立集方案数. 如果原图是一棵树,可以直接大力f[x][0/1]来dp. 由于非树边很少,考虑2^11容斥,强制某些点必选,然后再O(n)dp,这样应该过不了. 发 ...

  9. 基于spring的web项目启动时预加载数据到ServletContext

    1.要在web启动时预加载数据到ServletContext,实现方法有很多,一种比较简单的方案就是: 1)新建一个bean,定义其初始化方法: <bean id="beanId&qu ...

  10. 6月17 ThinkPHP连接数据库------数据的修改及删除

    1.数据修改操作 save()  实现数据修改,返回受影响的记录条数 具体有两种方式实现数据修改,与添加类似(数组.AR方式) 1.数组方式 a)         $goods = D(“Goods” ...