Java Class06

Class 06

01面向对象

面向对象的三大特征

封装(Encapsulation)
继承(Inheritance)
多态(Polymorphism)

类的两大成员

属性
方法

静态成员不能直接调用动态

静态在类“生”的时候它就生,类死它才死,类比于“古人”,古人是看不到后来人的情况的,但是后来人可以了解古人,所以动态是可以调用静态的

构造器

与类同名的函数

默认构造器:无参构造器

class A{
    
    
	public A(){
    
    //默认构造器
		System.out.print("默认构造器");
	}
}

非默认构造器:含参构造器

public B{
    
    
	public int i;
	public B(int i){
    
    //非默认构造器
		i=100;
		System.out.print(i);
	}
}

非默认构造器自动生成,在有非默认构造器时会自动代替自动生成的默认的构造器,需要使用默认构造器需要手动输入

封装:

封就是私有,private
装是get和set,get是取用,set是编写

字符串在Java中是作为常量出现的,常量是不可改变的

public class Student {
    
    
    //封
    String name;//定义姓名
    String sex;//定义性别
    int grade;//定义年级
    int age;//定义年龄
    //装
    String getName(){
    
    //取名字
        return name;
    }

    void setName(String name1){
    
    //设置名字
        name=name1;
    }

    String getSex(){
    
    //取性别
        return sex;
    }

    void setSex(String sex1){
    
    //设置性别
        sex=sex1;
    }

    int getGrade(){
    
    
        return grade;
    }

    void setGrade(int grade1){
    
    
        grade=grade1;
    }

    int getAge(){
    
    
        return age;
    }

    void setAge(int age1){
    
    
        age=age1;
    }
}

参数传递

参数传递就是将实参传递给形参的过程

public class ClassDemo01 {
    
    
    String name;//定义姓名
    String phoneNum;//定义电话号
    String address;//定义地址
    String email;//定义邮箱

    public ClassDemo01(){
    
    //定义默认构造器
    }
    public ClassDemo01(String name,String phoneNum,String email,String address){
    
    //定义非默认构造器
        //形参传递
        this.name=name;
        this.phoneNum=phoneNum;
        this.email=email;
        this.address=address;
    }

    public void printMessage(){
    
    //定义打印信息方法
        System.out.println("姓名"+name);
        System.out.println("联系电话"+phoneNum);
        System.out.println("电子邮箱地址"+email);
        System.out.println("目前居住地址"+address);
    }
    public static void main(String[] args) {
    
    
        ClassDemo01 cd=new ClassDemo01("张三","110","[email protected]","昌平");//实例化对象(使用非默认构造器)
        cd.printMessage();//打印方法
    }
}

值传递和引用传递

值传递
基本类型做形参时,传递的是值而不是地址

int i1=100;
int i2;
i2=i1;

参数的值传递就是将i1的结果进给到变量i2中,i1和i2从此没有任何关系,即使改变i2的值也对i1的输出结果没有任何影响

引用传递
引用类型做形参时,传递的是地址而不是值(传递的是自己本身)

class Student{
    
    
    private int age;
    public Student(){
    
    

    }
  
    public static void main(String args[]){
    
    
        Student s1=new Student();
        s1.age=20;
        Student s2=new Student();
        s2=s1;
        System.out.println(s1.age);//输出20
        System.out.println(s2.age);//输出20

        s1.age=100;//重新给s1赋值
        System.out.println(s1.age);//输出100
        System.out.println(s2.age);//输出100
    }
}

参数的引用传递通常发生在引用类型当中,引用类型传递的是地址而不是值,所以改变s1对象的结果对s2也产生影响

其中值传递就相当于两台电视,你给一台电视换台对另一台电视不会产生任何影响

引用类型则相当于在两台电视之间加了一个遥控器(遥控器可以同时还控制两台电视),你通过遥控器给一台电视换台,对另一台电视也会产生影响。

具体参考 值传递和引用传递

猜你喜欢

转载自blog.csdn.net/qq_45325217/article/details/127316672