上一个礼拜太忙了,今天开始恢复java的学习~

目录

1、面向过程——面向对象的区别

传统的面向过程式编程是动作驱动的,数据和动作是分离的。面向对象编程的范式重点在于对象,动作和数据一起定义在对象中。

面向过程的范式重点在于设计方法。面向对象的范式将数据和方法耦合在一起构成对象。使用面向对象范式的软件设计重点在对象以及对对象的操作上

一个简单的计算BMI类,

/* BMI:name,gender(male-1,female-0),age,weight,height */

public class BMI {

private String name;

private int age;

private String gender; // male=1 ; female = 0;

private double weight; //KG

private double height; //m

public BMI(String name,int gender,int age,double weight,double height) {

this.name = name;

this.age = age;

this.gender = (gender==1) ? "male" : "female";

this.weight =weight;

this.height = height;

}

public BMI(String name,double weight,double height) {

this(name,1,20,weight,height);

}

public double getBMI() {

double bmi = this.weight / this.height / this.height ;

return bmi;

}

public String getStatus() {

double bmi = getBMI();

if (bmi < 18.5)

return "Underweight";

else if (bmi < 25)

return "Normal";

else if (bmi < 30)

return "Overweight";

else

return "Obese";

}

public String getName() {

return this.name;

}

public String getGender() {

return this.gender;

}

public int getAge() {

return this.age;

}

public double getWeight() {

return this.weight;

}

public double getHeight() {

return this.height;

}

}

2 、类的关联 聚合 组合

关联:关联表示两个类之间的活动。下图,学生选课,老师教课。

聚集/组合:聚集是关联的一种特殊形式,代表了两个对象之间的归属关系

1 to 1 :组合

N to 1 :聚集

3、string

3.1 创建

首先,明确一点:字符串是对象。它有charAt(int),length()等方法。

String message = new String("welcome");

String message = "welcome";

上面两句同效,#2 java将字符串直接量看作String对象。

String 变量存储的是对String 对象的引用,String 对象里存储的才是字符串的值。

3.2不可变与限定字符串

String s = "java";

s = "HTML";

对上面的程序,#2不能改变s的值。第一条语句创建了一个内容为"]ava的String 对象,并将其引用賦值给S,第二条语句创建了一个内容为"HTML"的新String 对象,并将其引用賦值给s。陚值后第一个String 对象仍然存在,但是不能再访问它,因为变量s现在指向了新的对象。String 对象是不可变的,它的内容是不能改变的。

因为字符串在程序设计中是不可变的,但同时又会频繁地使用,所以java虚拟机为了提高效率并节约内存,对具有相同字符序列的字符串直接量使用同一个实例。这样的实例称为限定的字符串。

repalce和split是修改和替换方法,它们也不能修改字符串的内容,而是返回一个源自原始字符串的新字符串(并未改变原始字符串!)

3.3正则表达式

正则表达式(regular expression)(缩写regex) 是一个字符串,用于描述匹配一个字符串集的模式。可以通过指定某个模式来匹配、替换或分隔一个字符串。这是一种非常有用且功能强大的特性。

String中的match方法

"Java is fun".matches("Java.*"); // 子串.* 与0 个或多个字符相匹配。

"440-02-4S34".matches(\\d{3}-\\d{2}-\\d{4}"); //\\d 表示单个数字位,\\d{3}表示三个数字位。

String s = "a+b$#c".replaceAll("[$+#]","NNN"); //用NNN代替s中的所有$或者+或者#

String[] sa = "java,C++.C#?C;pyton".split("[,.;?]"); //主要出现,.;?,就把字符串划分成一段一段的

3.4常用方法

字符串转换成数组

char[] chars = "Java".toCharArray();

数值转换成字符串

String.value0f(S .44); //char,char[],int,long,float,double,boolean

格式化字符串。format 方法返回一个格式化的字符串,而printf 方法显示一个格式化的字符串

String s = String.format("%7.2f%6d%-4s",45.556,14,"AB");

java 正则表达式 组合_java基础:5.1 面向对象、类的关联 聚合 组合、正则表达式...相关推荐

  1. java.io.file()_JAVA基础知识之IO-File类

    File类介绍 File是java.io包下面的一个类,代表与平台无关的文件或者目录.JAVA中,无论文件还是目录,都可以看作File类的一个对象.File类能对文件或目录新建,删除,获取属性等操作, ...

  2. java class 字符串_java基础知识四 math类 字符 字符串 控制台输入输出 StringBuilder与StringBuffer...

    第四章:数学函数.字符和字符串 math类 Math是final类:在java.lang.Math中,所有数学函数都是静态方法 在一个java程序中,java.lang包中的所有类是隐式导入的. 三角 ...

  3. 转:UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现

    转:UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现 原文:https://www.cnblogs.com/firstcsharp/p/5327659.html 类与类图 1) 类(Clas ...

  4. 【UML关系(泛化、实现、依赖、关联(聚合,组合))】

    UML关系(泛化,实现,依赖,关联(聚合,组合))

  5. java 抽象类语法_JAVA基础语法8--多态/抽象类/抽象方法

    多态 继承.封装.多态.抽象是面向对象编程的四大基本特征.封装隐藏了类的内部实现机制,从而可以在不影响使用者的前提条件下,改变类的内部结构,同时保护了数据.继承是为了重用父类代码,同时为多态做准备.那 ...

  6. java super用法_Java基础面试题汇总

    blog.csdn.net/ThinkWon/article/details/104390612 Java概述 何为编程 编程就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结 ...

  7. java构造一个水果类_Java基础入门之Object类、匿名内部类、构造方法的继承解析...

    前言 大家好,我是Java进阶者.这篇文章我们主要介绍Java基础中的Object类.匿名内部类.构造方法的继承知识,一起来学习下吧! 一.Object类 1.Object类是所有类的父类,所有类都继 ...

  8. java 打码_java基础(二)

    一.前言 因为工作有点忙,个人有点懒,所以看书一直都是断断续续的,这里整理一部分之前看的笔记,希望能和众多码农们共勉,有什么不足或者错误的地方,希望大家能在评论区中指出,谢谢. 二.Java应用程序 ...

  9. java打印输出万年历_Java基础之打印万年历的简单实现(案例)

    Java基础之打印万年历的简单实现(案例) 问题:输入年,月,打印对应年月的日历. 示例: 问题分析: 1,首先1970年是Unix系统诞生的时间,1970年成为Unix的元年,1970年1月1号是星 ...

最新文章

  1. Qt 如何发送和接收UDP数据报
  2. 浅谈:MyBatis-Plus的CRUD与乐观锁,分页插件,逻辑删除
  3. NO.8:自学python之路------并行socket网络编程
  4. uiview生命周期
  5. 大数相加c语言思路,大数相加
  6. 未能加载文件或程序集“Newtonsoft.Json, Version=4.5.0.0, Culture=neutral,解决
  7. 找不到文件或程序集名称“DreamweaverCtrls”的解决方法
  8. Android AlarmManager设置多个定时事件时只最后一个有效问题解决
  9. 用dockers实现mysql主从同步
  10. MySQL5.7官网参考手册路径
  11. WinAPI 数据类型
  12. java pointer_Java EE 8 JSON Pointer讲解
  13. 安装SSMS报错:0x80070643
  14. 入侵检测系统 FAQ
  15. 编写训练一年级学生10以内减法的程序
  16. 小米手机android目录在哪里设置字体,在哪里修改小米手机的字体大小
  17. 如何让div靠右_一个DIV里,一边靠左,一边靠右,怎么实现?
  18. 柔性电子综述2012 ---在医疗,汽车行业,人机界面,移动设备以及其他场景下的可能应用
  19. Python IDEL查询和修改当前目录
  20. 【Java基础系列教程】第十五章 Java 正则表达式详解

热门文章

  1. Redis的6种数据类型
  2. 20个正则表达式必知(前端开发)
  3. SQLServer 联合查询
  4. linux下阻塞的系统调用,Linux下文件的阻塞与非阻塞对部分系统调用的影响
  5. mysql plsql cursor_Oracle--plsql游标创建和使用
  6. 【OpenCV 例程200篇】82. 频率域巴特沃斯低通滤波器
  7. mysql命令行cmd_CMD命令行操作MySQL
  8. hbasehlog_HBase原理--RegionServer核心组件之HLog
  9. 【数据库】Mysql函数DATE_ADD() 增加日期/时间
  10. 【Python】function、module、Package及import导入方法