#java学习第四天
标签(空格分隔):java
java第五章之面向对象
一:基本概念:
java面向对象经典语句:在java程序猿眼中,万物皆对象,即世界万物是由对象组合的。
类:类是一个模板,描述一类对象的行为和状态。即是,类是一组具有相同属性和行为的一类对象的集合。
对象:类的实例化就是对象有具体的状态和行为即属性和方法。
属性就是一个实例对象的外在表现;行为就是一个实例化对象的行为的表现方式。
创建类和实例化对象:
创建类:
public class Student{
String name;
int age;
public void show(){
System.out.println(“大家好,我的名字是:”+name+“我今年已经”+age+“岁了”);
}
}
实例化对象:
Student stu=new Student();//创建一个对象实例化
stu.age=17;
stu.name=“旺旺”;//给成员变量赋值
stu.show();//调用类方法
声明一个方法:
访问修饰符 返回值类型 方法名(参数数据类型 参数名){
方法体;
}
访问修饰符有:public private protected default
返回值类型:void 或者八大数据类型等
参数:八大数据类型 或者对象 对象数组 数组
方法的重载:
java面向对象有三大特征:封装,继承,多态。
多态的变现形式有两种:重写和重载 都是针对方法而言的
package 方法重载;
public class zhazhi {
/**
* 榨汁机的行为方法
* @param name
* @param i
* @return
*/
public String show(String name,int i){
System.out.println(“经过蛮长的时间…”);
return name+“水”+i+“杯”;
}
}
package 方法重载;
public class main {
public static void main(String[] args) {
zhazhi z=new zhazhi();
//String c=z.show("apple")
System.out.println(z.show("apple",2));
System.out.println(z.show("banan",2));
}
}
方法重载 方法名相同 参数类型或者参数个数都不相同或者有一个不相同
参数列表不同 同一个方法名传入不同的参数 调用方法的表现不同
构造方法:有参构造方法和无参构造方法
有参构造方法:参数列表就是类的属性 在实例化创建对象的时候自动调用 作用就是给实例化的对象赋值
无参构造方法就是没有参数列表的构造方法 在实例化的时候就算没有创建也会自动生成
成员变量和局部变量的区别是:作用域不同 局部变量在方法体内定义 只在方法体内有用
成员变量是在方法体外 类内 所以作用域在整个类内都可以
传参时基本数据类型和引用数据类型的区别:
基本数据类型是在栈中存储的
引用数据类型比如类 字符串String 声明的时候是在栈 但是实例化的数据是在堆里面存储的
package 传参;
public class Student {
int age;
public int show(int a,int age) {
a=a+2;
age=age+2;
return age;
}
}
package 传参;
public class main1 {
public static void main(String[] args) {
int a=4;
Student stu=new Student();
stu.age=12;
stu.show(a, stu.age);
System.out.println(“a=”+a);
System.out.println(stu.show(a, stu.age));
}
}
运行结果:
a=4
14
原因:基本数据类型作为参数传值的时候在类的show方法又重新定义了一个a 但是引用类型的age在堆里保存 调的还是同一个