面向对象三种特征:继承、封装、多态。

以后开发过程中就是找对象使用,没有对象就创建一个对象。(找对象--建立对象--使用对象---维护对象)。

类和对象的关系:

现实生活中的对象:张山,李四

想要描述就是只要提取对象中的共性内容,对具体进行抽象。

描述:比如这些共性有:姓名、年龄、性别、学习java的功能。

类就是对现实生活中实物的描述。

对象:就是这类事物,实实在在存在的个体。

java中类用class来定义,具体的对象是对应java在堆内存中用new建立的实体。

***成员变量与局部变量:

    成员变量作用于整个类中,局部变量作用于函数中或者语句中。

   成员变量在堆内存中,因为对象的存在才存在内存中。

   局部变量在栈内存中。

===========================================================================================匿名对象使用方法之一:

1、当对象的方法只需要调用一次时候可以使用匿名(没有名字)对象来完成这样写比较简化。

如果对一个对象进行多个成员调用,必须给这个对象起名字。

匿名对象使用方式二:

可以将匿名对象作为实际参数进行传递。



封装:

封装:是指隐藏对象的属性和实现细节,仅仅对外提供公共访问方式。

好处:

      将变化隔离、便于使用、提高重用性、提高安全性

封装的原则:

     将不需要对外提供的内容隐藏起来、把属性都隐藏,提供公共访问对其访问。

封装private:私有权限修饰符:用于修饰类中的成员(成员变量、成员函数)

私有只有在本类中有效。

    ***注意:私有仅仅是封装的一种表现形式。

==========================================================================================

构造函数:

       特点:

       函数名与类名一致;不用定义还回值类型;不可以写return语句;

       class test{
    test(){
        System.out.println("person run");
    }
    
}
class test1{
    public static void main(String[] args){
        test t=new test();
        
    }
}


##对象一建立就会调用与之对应的构造函数。构造函数的作用:可以用于给对象进行初始化。

构造函数的小细节:

当一个类中没有定义构造函数的时候,那么系统会默认给该类加入一个空参数的构造函数;

构造函数与一般函数在写法上有不同。

在运行上也有不同。

构造函数在对象一建立就运行给对象初始化

而一般方法是对象调用才执行的,给对象添加对象具备的功能。

一个对象建立构造函数值运行一次

而一般方法可以被该对象调用多次


什么时候需要定义构造函数呢?

档分析事物时,该事物存在具备一些特性或者行为,那么将这些内容定义在构造函数中

===========================================================================================

重载:

 class test{
     private String name;
     private int age;
    test(){
        System.out.println("A: name="+name+",,age="+age);
    }
    test(String n){
        name=n;
        System.out.println("B: name="+name+",,age="+age);
    }

public void setName(string n){

        name=n;

}

public String getName(){

return name}


    test(String n,int a){
        name=n;
        age=a;
        System.out.println("C: name="+name+",,age="+age);
 }}
class test1{
    public static void main(String[] args){
        test t=new test();
        test t1=new test("LISI");

       t1.setName("libushi")

         test t2=new test("lisi",10);
        
    }
}


输出结果:

A: name=null,,age=0
B: name=LISI,,age=0
C: name=lisi,,age=10

构造代码块:作用是给对象进行初始化,对象一建立就运行而且优先于构造函数执行。

与构造函数的区别:

构造代码块是给所有对象进行统一初始化。

而构造函数是给对应的对象进行初始化

JAVA学习第五天_现实生活

构造代码块代码中定义的是不同对象的共性的初始化内容。

===========================================================================================

this关键字使用:

 class test{
     private String name;
     private int age;
    test(){
        System.out.println("A: name="+name+",,age="+age);
    }
    test(String name){
        this.name=name; /*this看上去是用于区分局部变量和成员变量同名的情况*/
        System.out.println("B: name="+name+",,age="+age);

    }
    test(String n,int a){
        name=n;
        age=a;
        System.out.println("C: name="+name+",,age="+age);
 }}
class test1{
    public static void main(String[] args){
        test t=new test();
        test t1=new test("LISI");
        test t2=new test("lisi",10);
        
    }
}
this:    代表本类的对象,到底代表哪个呢?
        this代表 它所在对象所属 对象的引用:简单的说哪个对象在调用this所在的函数,this就代表哪个对象。
        this用于构造函数之间互相调用。