1.面向对象:最小的处理单位是类。把大象装入冰箱,这个过程中有哪些事物,每个事物的行为。//类型:有相同特征的一个群体。
class Student{
成员变量(Python是在__init__方法中定义的)
成员变量:在类中定义的变量 ,属于实例的,通过new创建实例的时候,这些属性就创建了。实例销毁时,这些属性才会释放。
堆内存 (更新慢),public /private/static/final 可以用来修饰成员变量
局部变量:(book,place)在方法中定义的变量,方法的参数 。调用方法时,才会创建局部变量,方法调用完释放
栈内存 (更新快),final 可以用来修饰局部变量
成员变量和局部变量的名字可以一样 ,成员变量加this来标识
public void setName(String name){
this.name 成员变量
= 后面的name是局部变量
this.name = name;
}
String name;
char gender;
int age;
float height;
float weight;
public void info(){
System.out.println("姓名:"+name+",性别:"+gender+",年龄:"+age+",身高:"+height+",体重:"+weight);
}
void 没有返回值 public 公共的 没有参数
public void sleeping(){
System.out.println(name+"正在睡觉");
}
方法带了两个String类型的参数,一个表示地点,一个表示书
public void learning(String place,String book){
System.out.println(name+"在"+place+"看"+book);
}
方法声明返回一个int类型的值,方法体中用return返回对应的值
public int getAge(){
return age;
}
2.方法的重载: 一个类中有多个重名的方法:参数的个数,顺序,类型不同
public class Demo03 {
public int add(int a,int b) {
System.out.println("add(int a,int b)");
return a + b;
}
public float add(float c,float d){
System.out.println("add(float c,float d)");
return c+d;
}
public double add(double a,double b,double c,double d) {
System.out.println("add(double a,double b,double c,double d)");
return a + b + c + d;
}
public String add (int a ,String b){
System.out.println("add(int a ,String b)");
return a + b;
}
public static void main(String[] args) {
Demo03 d03 = new Demo03();
Python弱类型语言,方法中定义两个参数,调用时可以传任意类型
java 强类型语言,方法中定义两个参数,调用时只能传对应类型的值
重载的好处:调用起来比较简单
d03.add(10,20);//int
d03.add(10.0f,20.0f);//float
d03.add(10.0,20.0,30.0,40.0); // double
System.out.println是重载的方法,只需要知道要打印的内容,知道这个方法名即可
}3.构造方法 1. 与类名相同,没有返回值,不能有return语句
2. 类里面没有写构造方法,系统会默认提供一个无参的构造方法
3. 类里面有构造方法,系统默认的构造方法就不存在了
4.构造方法支持重载,创建实例更加灵活
5.构造方法可以用IDE自动生成class Pet {
}
class Pet1{
String name;
int age;
Pet1(String a, int b){//构造方法,给属性赋值
name = a;
age = b;
}
@Override
public String toString() {
return "Pet1{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
class Pet2{
String name;
int age;
float weight;
String pinZhong;
String hobby;
构造方法
public Pet2(String name, int age, float weight, String pinZhong, String hobby) {
this.name = name;
this.age = age;
this.weight = weight;
this.pinZhong = pinZhong;
this.hobby = hobby;
}
@Override
public String toString() {
return "Pet2{" +
"name='" + name + '\'' +
", age=" + age +
", weight=" + weight +
", pinZhong='" + pinZhong + '\'' +
", hobby='" + hobby + '\'' +
'}';
}
|