java学习笔记(三)----成员权限,构造函数,this用法

原创 2006年05月31日 12:27:00

成员权限
        
               本类    同包类    非同包子类    非同包非子类

public         y        y               y                        y

protected    y        y               y

default        y        y

private        y


在类中定义的变量,在创建对象时,会自动对类中的变量进行初使化,对如int类的会被初使化为0。
在方法中定义的变量,不会被初使化。

peason p1=new peason p1();
peason p2=p1;
p1=null;
此时p1为空,变为垃圾,peason对象还被p2所引用.

==和equals的区别:==用于比较两个变量的值是否相等(用于基本数据类型,equals用于比两个对象中的内容是否完全一样)
对于String s1=new String("abc"); 和 String s2=new String("abc");这两条语句,用if (s1==s2) , s1和s2是不等的,因为s1和s2是两个对象,所以不等; 但String s3=s1;
用if (s1==s3),则结果是相等的,因为s1和s3指向堆中的同一个对象,他们在栈中的值是一样的。
equals用于比较两个对象中的内容是否相等,if (s1.equals(s2)) ,则结果相等


数组间的考备函数 System.arraycopy()
数组间的排序 arrays.sort()
数组的比较也可用equals()

 

--------------------------------
***********匿名对象
可以 new 类名().方法名(); new peason().shout();直接创建一个对象,调用方法.(匿名对象)
匿名对象的两种情况:1.如果对一个对象只需要进行一次方法调用,那么就可以使用匿名对象。
2.将匿名对象作为实参传递给一个函数调用,比如程序中有一个getSomeOne函数,要接收一个Person类对象作为参数,函数定义如下;
public static void getSomeone(Person p)
{.......}
可以用下面的语句调用这个函数
getSomeOne(new Person());

 

----------------------------
*********构造函数
构造方法的特征:
1.它具有与类相同的名称
2.它不含返回值
3.它不能在方法中用return语句返回一个值
注意:在构造方法里不含返回值的概念是不同于void的,在定义构造方法时加了void,结果这个方法就不再被自动调用了

在构造函数中,通过this可以调用同一class中别的构造函数,如

   public class Flower{
   Flower (int petals){}
   Flower(String ss){}
   Flower(int petals, Sting ss){
   //petals++;调用另一个构造函数的语句必须在最起始的位置
   this(petals);
   //this(ss);会产生错误,因为在一个构造函数中只能调用一个构造函数
   }
   }
   **:1)在构造调用另一个构造函数,调用动作必须置于最起始的位置
   2)不能在构造函数以外的任何函数内调用构造函数

   3)在一个构造函数内只能调用一个构造函数

 

------------------------------------------

this用法1
class Person ()
{  private int age;
   private String name=new String();
   public Person(){}
   public Person( String x)    
   {  name=x;}
   public Person( String x,int y)
   {  name=x;  age=y;}
   public void fun1();
   {  System.out.println(name) }
   public void fun2();
   {  Person a2=new Person("a2");
      a2.fun1();
      this.fun1();  // a1.fun1  this代表对fun2进行调用的对象,fun2运行时是一定有一个对象存在的,这里的this是可以省略的,直接用fun1()
    }
   //this就相当于我所在的那个对象
   public static void main(String [] args)
   { Person a1=new Person("a1");
     a1.fun2();
   }    
}

this用法2
 class Person ()
{  private int age;
   private String name=new String();
   public Person(){}
   public Person( String x)     
   {  name=x;}
   public Person( String x,int y)
   {  name=x;  age=y;}
}
改为
  class Person ()
{  private int age;
   private String name=new String();
   public Person(){}
   public Person( String name)     
   {  this.name=name;}
   public Person( String name,int age)
   {  this.name=name;  this.age=age;}
}
    
this用法3:用构造方法去调用另一个构造方法
 class Person ()
{  private int age;
   private String name=new String();
   public Person(){}
   public Person( String name)     
   {  this.name=name;}
   public Person( String name,int age)
   {  this();   // 调用Person()构造孔方法
      this(name); //调用Person(String name)构造方法
      this.age=age;}
}
---------------------------------------
finalize 析构方法,垃圾回收器  用法 public void finalize(){...}
System.gc() 当在主函数中调用时,启动地垃圾回收finalize(){...}
每个类中都有一个垃圾回收器

Classs A{
...
...
public void finalize()
{ System.out.println("object is going!"); }

public static void main(String[] args)
{ new A();
  new A();
  new A();
  System.gc(); //启动垃圾回收
}
}
运行结果:object is going!
          object is going!
          object is going!

相关文章推荐

C++学习笔记(六)-- 类和对象 构造函数和析构函数 const成员函数 this指针 对象数组 堆栈管理变量

C++学习笔记之六,本文为C++ Primer Plus 第十章对象和类的学习笔记,大抵分为以下几个小部分: 类Class的用法 类的构造函数和析构函数: const成员函数 this指针 对象数组 ...
  • zmdsjtu
  • zmdsjtu
  • 2016年09月06日 13:48
  • 667

Java学习笔记之构造函数&this

class Person { private String name; private int age; //定义一个Person类的构造函数 Person()  //构造函数, 而...

java个人学习笔记07(封装+构造函数+this)

1.面向对象的三个特征:封装、继承、多态 封装:隐藏实现细节,对外提供公共的访问接口 1)将属性都私有化,对外提供对应的公共的setXxx()和getXxx()方法来访问 2)将内部函数私有化,使该函...

NO7.java学习笔记【面向对象、栈内存、堆内存、构造函数、this、super、继承、覆盖、对象实例化、final】

一、理解面向对象: 面向过程:强调的是功能行为。 面向对象:将功能封装进对象,强调具备了功能的对象。 面向对象是基于面向过程的。 二、JAVA把内存分为两种:栈内存和堆内存。 //在函数中定义的一些基...

韩顺平 javascript教学视频_学习笔记15__构造函数_成员函数详解

js面向(基于)对象编程——类(原型对象)与对象 对象—对象(成员)函数的初步介绍 在某些情况下,我们要需要定义对象函数。比如人对象:除了有一些属性外(成员变量表示的年龄,姓名……),我们人对象还...

韩顺平_轻松搞定网页设计(html+css+javascript)_第32讲_构造函数_成员函数详解_学习笔记_源代码图解_PPT文档整理

文西马龙:http://blog.csdn.net/wenximalong/ js面向(基于)对象编程——类(原型对象)与对象 对象—对象(成员)函数的初步介绍 在某些情况下,我们要需要定义对象...

Java基础——面向对象+(匿名)对象+封装(修饰符权限)+变量+构造函数+This关键字

1.   面向对象 面向对象与面向过程的不同 面向对象:是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。 面向过程:分析出解决问题...

Java重修之路(六)面向对象初识,类与对象,成员变量,局部变量,封装,构造函数,构造代码块,this关键字

今天终于进入正题,Java的面向对象部分,也是Java的核心部分,如果之前只是学过C语言而没有接触其他面向对象的语言的同学,这里要转换思想还是有些难度的,需要多思考,弄清楚什么是面向对象,面向对象与面...

黑马程序员_Java基础_面向对象(概述、类与对象关系、成员变量、封装private、构造函数和构造代码块、this关键字)

------- android培训、java培训、期待与您交流! ----------   一、面向对象(类和对象的关系) 面向对象的三个特征:封装,继承,多态。 以后开发:找对象,建立对象,使用...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java学习笔记(三)----成员权限,构造函数,this用法
举报原因:
原因补充:

(最多只允许输入30个字)