习{
1.习题处理
2.方法的定义:
1.无返回值 无参数
2.无返回值 有参数
3.有返回值 无参数 return 结果
4.有返回值 有参数 return 结果
3.构造方法:
构造方法也是方法, 但是 是特殊的方法 , 没有返回值
一个类中可以有几个 构造方法:
可以有多个;
构造器的作用:规范对象的创建 , 给成员属性赋值;
public Person(String name,int age, int sex){
this.name = name; 当前类的 引用
}
new Person("",2,3).name; 匿名 创建对象
构造器的相互调用:
this(); 只能放到构造器的第一行
public void eat(){
}
方法的重载:
在同一个类中, 方法名相同, 参数列表不同, 与返回值无关
不同: 个数, 顺序 , 类型
普通方法的调用:
方法不可以相互调用, 会出现 栈溢出 StackOverflowError 错误
static: 静态的
可以修饰: 属性, 方法, 内部类
static 修饰的东西 有什么特点,
1.可以通过类名.属性名
方法名
2.jvm虚拟机加载时,只加载一次 是将 。class的 字节码形式加载到jvm 内存中
类的组成部分:
1.静态块儿 第一个执行 ,
2.游离块儿 第二个执行
3.成员属性
4.构造方法 第三个执行
5.不同方法
4.
}
值传递 和 引用传递的事儿: 方法 的参数
异常:
空指针异常 : NullPointerException
数学异常: int i = 1/0 ; ArithmeticException
数组:数组下标 越界异常:IndexOutOfBoundsException
=======================================================
1.面向对象:
入门:掌握 类 和对象 , 构造器 , 方法的使用,方法的相互调用 ,封装
// boolean 类型的 getter 方法 特殊 是 is开头 这里只针对flag这个boolean类型的变量。
public boolean isFlag() {
return flag;
}
public void setFlag(boolean flag) {
this.flag = flag;
}
String类型的值是不可变的,因为存放在堆的常量池中。
所以变量除了String做类的调用都是给的该变量的复制体,而String类型因为存放在常量值中。本质上却没有进行传递,但引用类型会发生值的传递;
package com.oracle.test4;
public class Test {
public static void main(String[] args) {
//代表一个 用户
Customer person =new Customer("Jane","Smith");
Account a =new Account(1000,2000,0.0123);
//将创建好的 账号 赋值给 用户
person.setAccount(a);
//存入 100 元,再取出960元。再取出2000
//从这人的手里拿账号, 在操作这个账号
Account account = person.getAccount();
account.deposit(100);
account.withdraw(960);
account.withdraw(2000);
//有了 toString方法 就可以直接输出 对象名
System.out.println(person);
}
}
这里面我们需要注意的是需要利用preson.setaccount 然后通过person。getaccount 赋值给account对象 相当于从这人手里拿出账户,然后再进行操作。通过account就可以随意对该账户进行操作了。