面向对象的创建和调用
堆:存放实例对象 栈:储存局部变量,8种数据类型、对象引用类型
属性:有默认的属性值 局部变量:没有默认初始化值,要赋值
内存中加载的位置,属性:加载在堆空间中(非static) 局部变量:加载到栈空间中
匿名对象
只能调用一次
自定义工具类
方法重载
一个类中存在相同的类名,参数类型个数不同。
public void add(){
}
public void add(int[] a){
}
变量是基本数据类型,赋值变量保存的是他的数据值;是引用类型,赋值保存的是他的地址值。
值传递
java中参数值传递的具体体现:基本数据类型,数据值;引用数据类型,地址值。
int[] a = new int[5];
System.out.println(a);//引用类型输出地址值
递归方法实现1~100之间自然数所有的和。
public class pet{
main{
pet test= new pet();
int sum = test.getsum(100);
System.out.print(sum);
}
}
public int getSum(int n){
if(n == 1){
return 1;
}else{
return n + getSum(n - 1);//计算乘积 n*getSum(n-1)
}
}
面向对象封装性
给定义的属性赋值并且使用,private、protected、default(省缺默认值)、public封装起来,并提供公共的get获取和设置set方法,供外部访问。
封装性的体现:添加4种权限修饰符进行限制、不暴露私有的方法、单例模式。
修饰符 | 类内部 | 同一个包 | 不同包的子类 | 同一个gong |
private | yes | |||
protected | yes | yes | ||
default | yes | yes | yes | |
public | yes | yes | yes | yes |
构造器
没有显示构造器,系统会自动提供一个空参构造器,作用:创建对象,初始化对象
javaBean
java语言写成的可重用组件:符合标准的java类:类是公共的、有属性、有对应的get和set方法。
public class Customer{
private int id;
private String name;
public Customer(){
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
this调用当前属性和方法:在类的方法或者构造器中使用this调用变量,表明此变量是属性而不是形参。
private int id;
public void getId(){
this.id = id;
}
public void setId(){
return id;
}
public void std(){
System.out.println("被eat方法调用");
}
public void eat(){
this.std();
}
public void add(int id){ //此方法是add类的构造器 int id:(形参)
this.id = id; //this.id表明此id不是该方法的形参
}
调用本类的其他构造器:使用this(id); 不能调用自己的构造器;放在首行