JAVA学习-拼接数组,static关键字,JavaBean规范

感言

 

本阶段,我感觉我自己写博客不能太有章法可循,不动笔墨不读书,其实本身也喜欢在以前学习新东西的时候,用笔看一段抄一段,但是脑子里是不是真的记住了,非也,是真的一点都没有记住,光去练字了。

现在写博客,我也感觉就是让知识点,在脑子里去回味,所以应该是自己怎么写的爽,怎么来!看了很多大佬写的知识点总结,很简短,总结概括的也很好,我看了之后,受益匪浅,真舒服!

我前段时间也会考虑自己的东西如果可能,或许大概会被人看到,写的狗屁不通,岂不是很难受。但是我感觉过于去美化自己总结自己写的东西,反而不能把握自己的节奏,总之,自己写的就是给自己看的,写博客就是让知识点在脑子里印象更加深刻一些,有的时候学完某个知识点仍然还是感觉陌生,写过一次博客之后,这种感觉会好一点。果然,以后回顾复习知识点,还是去看大佬们的总结吧。

小节 拼接数组

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就符合了。



 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值