方法(与C中函数类似)
格式:
1.定义方法:
public static void 定义的方法名 {
.....
}//注:写在主方法main()外
2:调用方法:
//在主方法main()内
{
方法名;
}
3.带参数方法
形参:方法定义中的参数
实参:方法调用中的参数
4.带返回值方法
5.方法定义注意事项:
不能嵌套定义;
void类型方法 不用return或是return;(不加返回值);
返回后代码不执行
6.方法重载
多个方法在同一个类中
多个方法具有相同的方法名
多个方法的参数不相同,类型不同或数量不同
7.对于基本数据类型的参数,形参的改变,不影响实参的值(数据只存于栈内存中)
对于引用类型的参数,形参的改变,影响实参的值(引用内容存于堆内存)
//无参方法
public static int fun() {
System.out.println(10);
}
//带参方法
public static int max(int x,int y) {
int max=0;
max=x>y?x:y;
return max;
}
类和对象
1.类是对现实生活中一类具有共同属性和行为的事物的抽象;
对象是能够看得到的实体
- 类是对象的数据类型
- 类是具有相同属性和行为的一组对象的集合
2.类的组成:属性和行为
- 属性在类中通过成员变量来体现,行为在类中通过成员方法来体现
3.类的定义
public class 类名{
}
4.对象的使用(结合上点类的创建)
5.在程序执行过程中 对象的内存图解
6.多个对象指向相同(同多个数组指向相同,无非就地址相同,将地址中的内容覆盖)
成员变量,局部变量
- 成员变量:类中方法外的变量
- 局部变量:方法内的变量
private:权限修饰符
- 可以修饰成员(成员变量和成员方法)
- 作用是保护成员不被别的类使用,被private修饰的成员只有在本类中才可被访问
- 可以通过在类中定义方法来实现更多操作
this关键字
(解释起来有点麻烦,上图)
封装
封装原则:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问
如 成员变量private,提供对应的get方法和set方法
封装好处:通过方法来控制成员变量的操作,提高了代码的安全性;把代码用方法进行封装,提高了代码的复用性。
构造方法
- 注:构造方法的定义格式与方法的定义格式不同。创建对象时也会一同使用构造方法。
- 当未定义构造方法时系统会自动定义一个无参的构造方法(即没有内容),构造方法的定义可无参也可有参。
- 构造方法可以定义多个,与方法重载类似(满足多个方法的参数不相同,类型不同或数量不同)
- 隐藏信息:一个类无参构造方法至多能有一个。
- 因此,建议无论是否使用,都手工书写无参构造方法
对类和对象以来的内容小总结
String
- 注:String的构造方法由系统定义好,可直接使用(即创建对象时)
字符串的比较
- 比较方法:
①直接使用==比较:基本类型比较的是数据值,引用类型引用的是地址值;
(String是引用类型)
②可使用方法进行内容的比较:public boolean euqals(Object anObject)
也可直接使用
此处提供了两个重要方法:(s为字符串)
- 获取字符串中的字符,前面也提到字符串也可以是字符数组,因此索引从0开始 s.charAt(i) 即获取第i-1个字符
- 获取字符串长度 s.length()
发现问题:String类型的数据内容不可变,因此会浪费空间
解决问题(StringBuilder构造方法可直接使用)
拓展(构造方法、链式编程)
- public StringBuilder append(任意类型);同上图,添加后会返回对象本身
- public StringBuilder reverse();取反
- 链式编程
拓展2
public Sring toString();//此方法可直接如下使用
StringBuilder sb=new StringBuilder("hello");
String s=sb.toString; //实现了由String到StringBuilder的类型转变
public StringBuilder(Stirng s);
StringBuilder sb=new StringBuilder(s); //实现有StringBuilder到String的类型转变