A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 落星追恒 中级黑马   /  2016-3-18 13:46  /  673 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

因为要使用Insert方法要调用到这个类里面的s,不知道怎么调用。我在private后面加了个static,这样可行吗?有其他方法吗?

private static String s;

        public MakeString() {
                super();
        }

        public MakeString(String s) {
                super();
                this.s = s;
        }

        @Override
        public String toString() {
                return s;
        }
public static String insert(int index,String str) {
                char[] arr = s.toCharArray();
                String s1 = "";
                        for (int i = 0;i < index;i++) {
                        s1 += arr[i];
                }
                String s2 = "";
                        for (int x = index;x < arr.length;x++) {
                        s2 += arr[x];
                        }
                String s3 = s1 + str + s2;
                return s3;
        }

9 个回复

倒序浏览
私有的成员变量不能同时和static关键字使用,你的写法本身就是错误的,加静态就可以类名点调用,不创建对象,如果一直也不创建对象,那么类名点调用也是没有值的,所以不允许这样写
回复 使用道具 举报
wlsperfect 发表于 2016-3-18 20:44
私有的成员变量不能同时和static关键字使用,你的写法本身就是错误的,加静态就可以类名点调用,不创建对象,如 ...

阿里嘎多 明白阿里
回复 使用道具 举报
你可以增加set get方法;来实现对于私有变量的调用
回复 使用道具 举报
wlsperfect 发表于 2016-3-18 20:44
私有的成员变量不能同时和static关键字使用,你的写法本身就是错误的,加静态就可以类名点调用,不创建对象,如 ...

那么请解释下面这段可以运行的代码?
  1. public class Test {
  2.     private static String a;
  3.    
  4.    
  5.     public static String getA() {
  6.         return a;
  7.     }


  8.     public static void setA(String a) {
  9.         Test.a = a;
  10.     }


  11.     public static void main(String[] args) {
  12.         setA("abc");
  13.         System.out.println(getA());
  14.     }
  15. }
复制代码
回复 使用道具 举报
willsame 来自手机 中级黑马 2016-3-19 11:58:56
地板
看评论看的都懵逼了
回复 使用道具 举报
我也有点蒙了。。。。
回复 使用道具 举报
来签到啦
回复 使用道具 举报

哪里都看得到你啊,还跑到我这来签到
回复 使用道具 举报
落星追恒 发表于 2016-3-20 09:58
哪里都看得到你啊,还跑到我这来签到

哥们 我只是来刷币的 顺便也看了看你的贴 挺不错的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马