感言
本阶段,我感觉我自己写博客不能太有章法可循,不动笔墨不读书,其实本身也喜欢在以前学习新东西的时候,用笔看一段抄一段,但是脑子里是不是真的记住了,非也,是真的一点都没有记住,光去练字了。
现在写博客,我也感觉就是让知识点,在脑子里去回味,所以应该是自己怎么写的爽,怎么来!看了很多大佬写的知识点总结,很简短,总结概括的也很好,我看了之后,受益匪浅,真舒服!
我前段时间也会考虑自己的东西如果可能,或许大概会被人看到,写的狗屁不通,岂不是很难受。但是我感觉过于去美化自己总结自己写的东西,反而不能把握自己的节奏,总之,自己写的就是给自己看的,写博客就是让知识点在脑子里印象更加深刻一些,有的时候学完某个知识点仍然还是感觉陌生,写过一次博客之后,这种感觉会好一点。果然,以后回顾复习知识点,还是去看大佬们的总结吧。
小节 拼接数组
1、小练习:定义一个方法,把数组{1,2,3,4,5,6}按照指定格式拼接成一个字符串,格式参照如下,[word1#word2]
package Demo04;
public class StringCh {
/*
小练习:定义一个方法,把数组{1,2,3,4,5,6}按照指定格式拼接成一个字符串,格式参照如下,[word1#word2]
*/
public static void main(String[] args) {
int[] ints = new int[]{1,2,3,4,5,6};
toString22(ints);
}
public static void toString22(int[] ints) {
for (int i = 0; i < ints.length; i++) {
if (i == 0) {
System.out.print("[word" + ints[i]+"#");
} else if (i > 0 && i < ints.length - 1) {
System.out.print("word"+ints[i]+"#");
}else {
System.out.print("word"+ints[i]+"]");
}
}
}
}
2、输出结果
3、总结
1.自己码代码的时候发现,在给if条件语句中加条件语句的时候,i我给打成了int,之前自己好像也犯过这样的错误,但是后面自己发现了。
2. 之前犯过数组越界的错误,这次自己明白了原理,完美的避免了。
3.最后在main方法中调用方法的时候,自己使用了打印输出,不知道自己怎么想的,没有返回值的方法应该是只能使用,直接调用的方式的,程序报错,不能为空,这里又长了记性。
小节 字符种类的统计
1、输入一个字符串,统计其中各种字符出现的次数,种类有:大小写字母,数字,其他
分析:这个问题还是比较简单的,输入一个字符串,统计里面字符出现的次数,那么就必定要拆分这个字符串数组,然后将里面的字符一个一个去比较。一开始自己去想这个代码的时候,就没想到应该怎么去判断是什么类型的一个数字,憋了半天,认为是不是可以通过ASCⅡ码这样的一个范围去比较,但是具体的范围是多少自己也忘记了,本身就是想不通过查阅资料自己把这道题目给写出来
不说了上代码
package cn.java.day001.Demo01;
import java.util.Scanner;
public class MethodToStarry {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String str = sc.next();//这里是调用了sc对象的方法然后定义了一个String类型变量去接收
char[] chars = str.toCharArray();
for (int i = 0; i < chars.length; i++) {
System.out.println(chars[i]);
}
int sumShuZi = 0;
int sumDaXie = 0;
int sumXiaoXie = 0;
int sumQiTa = 0;
for (int i = 0; i < chars.length; i++) {
if (chars[i] >= '0' && chars[i] <= '9') {
sumShuZi++;
} else if (chars[i] >= 'a' && chars[i] <= 'z') {
sumXiaoXie++;
} else if (chars[i] >= 'A' && chars[i] <= 'Z') {
sumDaXie++;
} else {
sumQiTa++;
}
}
System.out.println("您输入的字符串中数字有" + sumShuZi + "个");
System.out.println("小写字母有" + sumXiaoXie + "个");
System.out.println("大写字母有" + sumDaXie + "个");
System.out.println("其他的字符有" + sumQiTa + "个");
}
}
一开始没有注意等号的问题,导致自己在输入相关的符号的时候,发现该有的那个奇数的变量输出的不是多一个就是少一个,后来自己去查了一下相关的代码,发现是少写了等于号,如果没有等于号的话,那就是一个开区间,明显每一个范围内的数都会少两个,那当自己输入a,z,A,Z,0,9这几个数的时候,代码就不会认为是属于范围内的数,所以一开始没有成功的原因就是这个,哎,属于是低级问题了。
小节 static关键字
1、static关键字首先是加在变量或者方法的修饰符之后的,如果变量或者方法加上static关键字之后,那么就表示该变量已经是属于类的,可以直接使用类来调用该方法
2、private static int 变量名 则创建的该类的对象是共用该静态变量的数据的
3、public static void 方法名 则创建的该类的对象共用该静态方法的数据
4、一般的成员方法被static关键字修饰之后,就是静态方法了,后面去使用的时候也就是一般的在main方法同类状态下,创建的普通方法,创建之后就可以直接使用类名去直接使用该方法了。
5、加上static关键字的方法和变量之后,一般这个类的变量也就访问不到这个静态变量或者方法了。
比如代码输出
package cn.java.day001.Demo01;
public class StaticMethod {
private int age;
private String name;
static int room;
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public static int showName(int room) {
int daRoom = 0;
daRoom = this.age + 1;
System.out.println("这里你的大名是");
return daRoom;
}
}
这里我随便乱创建了一些成员变量和方法。
这里可以很明显看出来一个错误,当然不是我自己主动发现的,是程序运行之后发现的,本来在静态方法中是不可以使用this关键字的,这是一个矛盾的问题,静态方法后面使用的时候是用的类名去调用的,但是this指代的是当前的对象,所以用不到对象。IDE给我解释的很好,无法从静态上下文中调用非静态。
6、static静态代码块
虽然前面是带上了静态,但是领悟的知识点和前面的静态代码和静态变量没有多少关系,需要重新记忆。
所谓的静态代码块,就是在首次使用到该类的时候调用一下这个代码,但是之后就不会再调用了,所以我感觉有点偏向于一次性用品,也就是在实例化对象的时候会用一次吧,后面不会再使用了,具体的调用也不是使用对象,类名之类的可以稳定调用的。具体的应用是什么,不得而知。
7、严格的使用静态变量和成员方法的调用方法
在内存上来说,好像静态代码的创建顺序是优先于成员代码的,应该是在方法区里面,本身就有一个静态区,也就是和class文件优先级并驾齐驱,成员代码的调用,也就是在静态方法里面是不能去调用成员代码的,因为静态方法本身就没有见到过它,成员代码是可以的,静态代码是优先创建的,看看static代码块就知道了,和类的首次调用一起运行。
小节 JavaBean
1、因为回忆而起的JavaBean
以前听过,但是后面的学的时候,没有过早的见到过。后来知道了,其实就是一个规范,原文的解释是:JavaBean 是 Java语言编写类的一种标准规范。符合 JavaBean 的类,要求类必须是具体的和公共的,并且具有无参数的构造方法,提供用来操作成员变量的 set 和 get 方法。
这句我看不懂,而且脑子也有点拒绝去想这句话具体是什么意思,所以还是直接去看解释。
然后我总结一下,从我所学习到了创建一个类的方法,这个类不是用来运行的,那就是一个图纸,创建图纸的时候,得有一般的属性,对应的就是成员变量,得有一般的行为,对应的也就是成员方法。然后如果想要简单一点后面录入数据,那就在一个无参无内容的构造方法后,再创建一个有参的构造方法,同时,设置参数值自动给定义的成员变量去赋值。后面如果怕用户在使用变量的时候,不守规矩,那就得加上一个private关键字,创建一个set和get方法,那一般的这些东西都有了,也基本就符合了一个JavaBean的规范了。
最后也就是说
一个基本的类里面,得有成员变量,成员方法,无参的构造方法,封装使用的set和get方法。有了这些之后,JavaBean就符合了。