构造方法是创建对象相的方法,当我们通过关键字new开创建对象是,其实就是在调用构造方法
格式:
public 类名称(参数类型 参数名称){
方法体
}
注意事项:
1.构造方法的名称必须和所在的类名称完全一样,连大小写也要一样
2.构造方法不要返回值,连void都不要写
3.构造方法不能return一个具体的返回值
4.如果没有编写任何构造方法,呢么编译器将会默认赠送一个默认的构造方法,没有方法体参数什么事情就不做
piblic Student(){}
5.一旦编写了至少一个构造方法,那么编译器将不再赠送。
public class Student{
public Student(){
System.out,println("无参构造方法执行啦");
}
//构造方法相同 ,就是方法的重载
public Student(String name,int age){
this.name = name;
this.age = age;
System.out,println("有参的构造方法执行啦");
}
//赋值获取name
public void setNmae(String name){
this.name = name;
}
public String getName(){
return name;
}
//赋值获取age
public void setAge(int age){
this.age = age;
}
public int getAge(){
return age;
}
}
把构造方法私有(private),只给静态方法,那么就不能通过对象来访问静态方法,只能通过类来访问静态方法
工具类中是可以使用静态的
注意:
我们做项目给人家的是class文件,里面是什么,人家都看不懂,所以要给其一说明书
说明书:
写一个工具类,
给这个类加上文档注释
怎么加?
API应用程序编程接口,API字典查工具类,导包 左闭右开 int num = s.nextInt(10);(取值范围是0~9)
把构造方法私有外界就不能创建对象了
private ArrayTest(){};
如何制作一个说明书
A.写一个工作类
B.对这个工具类加入文档注释,怎么加呢?加写什么东西呢?
C.用工具解析文档注释
javadoc工具
字符串的那内容永不改变
因为字符串不可改变,所以字符串是可以共享的,就是说s = "Hello",s1 = "Hello"
字符串效果上相当与char[]数组,但是底层原理是byte[]字节数组
equals比较内容:
public boolean equals(Object obj){} 任何对象都能用Object接受
常量字符串建议放前面,变量字符串放后面,比较的时候
忽略大小写进行比较equalsIgnoreCase(Object obj) equalsIgnoreCase
public int length(); 获取字符串含有字符的个数
public String concat(String str); 前字符串和后字符串拼接成返回值新创建的字符串
public char charAt(int index);获取指定索引位置的单个字符
public int indexOf(Stirng str):查找参数字符串当中首次的索引位置,没有返回-1值;
publiv String substring(int index); 截取从参数位置一直到字符串末尾,返回新字符串。
publiv String substring(int begin, int end);截取字符串左闭右开区间
public char[] tocharArray(); 将当前字符串拆成字符数组的返回值
public byte() getBytes(); 获取字符串底层的字节数组
public Sting replace(charSequence可以接受字符串类型 oldString,charSequnence newString){}; 例子 String str = str1.replace("o","*")
public String[] split(String regex);按照参数的规则,将字符串切分成若干部分
split的方法参数其实是一个正则表达式,今天要注意,若果按照英文据点"."不行"只能写"//."
public class StringDemo02 {
public static void main(String[] args){
String str = "helloworld";
String str6 = "HELLOWORLD";
"abc" 等效于 char[]?data={?'a'?,?'b'?,?'c'?}
//是否相等的判断,和我大小写的判断
System.out.println(str.equals(str6));
System.out.println(str.equalsIgnoreCase(str6));
//求字符的长度
System.out.println(str.length());
//拼接-->相当于+
String str2 = "welcome";
String s = str.concat(str2);
System.out.println(s);
//获取指定索引出的字符
char ch = str.charAt(2);
System.out.println(ch);
//获取str在字符串对象中第一次出现的索引,每有返回-1
System.out.println(str.indexOf("llo"));
System.out.println(str.indexOf("o"));
//获取最后一个索引值
System.out.println(str.lastIndexOf("d"));
//截取字符串,从start开始,到结尾
System.out.println(str.substring(5));
//substring(a,b)就是从a开始,到b结束,包括a不包括b
System.out.println(str.substring(5,9));
//将字符串转化成数组
char[] charArray = str.toCharArray();
for(int i = 0;i<charArray.length;i++){
System.out.print(charArray[i]+" ");
}
System.out.println();
//把字符串转换为字节数组
byte[] bytes = str.getBytes();
for(int i = 0;i<charArray.length;i++){
System.out.print(bytes[i]+" ");
}
System.out.println();
//替换字符串当中的字符
//给已替换的不仅仅是按位数来的
String str3 = str.replace("lo", "*");
System.out.println(str3);
//分割字符串,有一个划分的依据
String str4 = "123abc123abc123abc";
//分割后是组数模式这你得明白
String[] strArray2 = str4.split("123");
for(int i = 0;i<strArray2.length;i++){
System.out.println(strArray2[i]);
}
}
}
静态代码块:
在类中 static{}
特点:当第一次用到本类时,静态代码块执行唯一的一次
静态代码块优先执行
用途:
用来一次性的对静态成员变量进行
Arrays.sort(arr)这个是自动上升排序数字大小升序,字符串是字母升序,还有一种日后再说,这个是没有返回值的,遍历数组你就toString
Arrays.toString(arr)这个是便利数组,直接是返回值的,
快捷键arr.forr倒叙
public static double abs(double num)//获取绝对值
public static double ceil(double num)//向上取正12.1取13 -10.1取-10
public static double floor(double num)//向下取整
public static double round(double num) //四舍五入
MAth.PI直接给个圆周率
count 数量的意思,result 结果,要有习惯哦!
:
代码块:在JAVA中使用{}括起来的代码称之为代码块,根据其位置和申明不同分为
局部代码块:在方法中出现,用于限定变量的生命周期
构造代码块:在构造方法的位置,在类中的成员位置,多个构造方法中相同夫人代码都存放到一起,每次调用构造都执行,并且在构造方法前执行
一般对对象进行初始化
静态代码块: 在成员变量位置用static{}表示,一般对类进行初始化 (在同一个类中比main方法优先级要大)
同步代码块:多线程教
先执行静态代码块,在执行构造代码块,最后执行构造方法
1次 每次用都执行 同左
class Code{
{int x = 100;
System.out.println(x);}
public Code{}
}
class CodeDemo{
public static void main(String[] args){
//局部代码块
{int x = 10;
System.out.println(x);}
//找不到x符号
System.out.println(x);//这里就输出不了了
}
System.out.println("----------")
Code c = new Code;
//每次执行构造方法都会执行构造代码块
}
|
|