Java学习第五天

Posted 撒天毒的女巫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java学习第五天相关的知识,希望对你有一定的参考价值。

方法重载

在一个类中定义多个构造方法时,只要每个构造方法的参数类型参数个数不同即可。

在Java中每个类都至少有一个构造方法,若无定义则系统默认无代码方法体

以下Person类的两种写法效果一样。

1. class Person
                      
2.class Person
         public Person()
         
                   

定义一个对成员变量赋初值的方法
class Person int age; public Person (int X) age = x;
在一个类中如果定义了一个有参的构造方法,最好再定义一个无参的构造方法。
this关键字
1.使用this可明确访问一个类的成员变量,解决与局部变量名称冲突问题。
2.通过this调用成员方法。
3.构造方法是被自动调用的,在程序中不能像调用其他方法一样调用构造方法,但可在一个构造方法中用this([参数1,参数2…])的形式调用其他构造方法。

使用this调用类的构造方法时应注意:
1.只能在构造方法中用this调用其他构造方法,不能再成员方法中使用。
2.在构造方法中,使用this调用构造方法的语句必须位于第一行,且只能出现一次。
3.不能在一个类的两个构造方法中用this互相调用。

垃圾回收:
1.等待java虚拟机进行自动垃圾回收
2.调用System.gc()方法通知java虚拟机立即垃圾回收
finalize()方法可观察对象何时释放

静态变量
"类名.变量名"直接访问
static关键字(用于修饰类的成员)1.成员变量2.成员方法3.代码块等
static不可修饰局部变量

静态方法(“类名.方法名”)
不创建对象的情况下可以调用某个方法

调用静态方法:1.类名.方法2.实例化对象

static修饰的代码块:静态代码块

使用Eclipse运行文件——Java虚拟机加载类——执行该类静态代码块——调用main方法

静态代码块在类第一次使用时才会被加载,并且只加载一次。

类可分为:成员内部类(在Java中允许在一个类内部定义类:外部类),静态内部类,方法内部类

在方法内部类中,可以访问外部类的所有成员。
内部类可以在外部类中被使用,并能访问外部类成员。

若想通过外部类访问内部类,则需通过外部类对象去创建内部类对象。
创建内部类对象的具体语法格式:“外部类名.内部类名 变量名 = new 外部类名().new 内部类名();”

Outer类定义:1.Inner类——show()方法——访问Inner类成员变量num
2.test()方法——创建内部类Inner的实例对象——调用show()方法。

nice!加油!

JAVA学习第五天

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

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

类和对象的关系:

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

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

描述:比如这些共性有:姓名、年龄、性别、学习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

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

与构造函数的区别:

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

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

技术分享

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

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

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用于构造函数之间互相调用。
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
       


以上是关于Java学习第五天的主要内容,如果未能解决你的问题,请参考以下文章

JAVA学习第五天

学习Java的第五天

第五天学习java

Java学习第五天

java学习第五天

Java学习第五天