面向对象
Posted anzhilanxiao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象相关的知识,希望对你有一定的参考价值。
涉及内容:构造方法,static关键字,字符串
一.构造方法
- 是与类名相同的方法名
- 对于每个类,JVM都会默认添加一个无参构造方法(构造器),当我们指定时,系统就不会自动添加了。
- 构造方法可以重载
- 构造方法在创建对象时执行
- 不能直接被调用,只能在其他构造方法中调用,这里用到this关键字,只能在第一行被调用
- 无返回值,但可以用return结束整个方法。
public Person(){ this("Cherry"); System.out.println("无参构造器"); } public Person(String name){ //this(); System.out.println("有参构造器"); this.name=name; } Person p1=new Person(); Person p2=new Person("Tom"); Person p2=new Person(12);//报错,没有这个类型的构造器
二.Static关键字
- 与对象无关,只跟类有关,所有对象共用一个静态数据
- 可以用(类名.静态)的方式来调用
- 静态方法中不能使用非静态数据,因为还没来得及初始化
- 静态方法中如果使用非静态,可先创建那个数据的对象,然后通过对象.属性(方法)调用
- 在静态中不能用this关键字(因为this跟对象有关嘛)
三.字符串
1.==和.equals的区别:
==直接比较的是变量的值,.equals()方法比较的是地址上面具体的值
intern()方法:内容与此字符串相同,但一定取自具有唯一字符串的常量池。
String s1=new String("fsk"); String s2=new String("fsk"); System.out.print(s1==s2);//比较的是栈内的值(地址),这个是false System.out.print(s1.equals(s2));//true s3.intern()==s1//true
2.toString()方法
属于object类的方法,在直接输出对象时,实际上就是在调用对象的toString()方法,可重写
3.其他方法列举
1 s.charAt(i);//返回指定索引出的字符 2 s.compareTo(s1);//按ASCII码一个字符一个字符地比较 3 s.concat(s1);//字符串拼接 4 s.contains("ab");//是否包含 5 s.endsWith(".java");//是否以某结尾 6 s.indexOf("ab");//返回索引 7 s.length();//字符串的长度 8 s.isEmpty();//是否为空 9 s.lastIndexOf("a");//最后出现a的位置的索引 10 s.substring(5,7);//子串 11 s.toCharArray();//转为字符数组 12 s.trim():删除头尾的空格,没有参数,只能删除空格
以上是关于面向对象的主要内容,如果未能解决你的问题,请参考以下文章