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

上一个礼拜太忙了,今天开始恢复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 、类的关联 聚合 组合

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

f3a80f3846779315c59932bbe7ab99f3.png

2d321b0944ed57c2015382b7f19a075e.png

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

1 to 1 :组合

N to 1 :聚集

a0c28e338ddb629e2b09ced6da44825b.png

75fad317410720b7770b0f7980d38564.png

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 对象是不可变的,它的内容是不能改变的。

b0299fa0a5460d72655da1f891566902.png

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

7be6588ff86b26f7ca21416548a92a0b.png

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");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值