Java面向对象基础知识及封装性

Java面向对象基础知识及封装性

 

一.本章知识点:

1.面向对象的概念

二.本章“定理”:

1.面向对象,定义一个物体时(窗口),除了指定物体的属性,(如,窗口大小,位置,颜色等),还要指定窗口应该有的动作(隐藏,移动,最小)。这是一种主语与谓语的关系。

2.面向对象的三大特征:

——封装(Encapsulation

——继承(Inheritance

——多态(Polymorphism

3,类和对象时面向对象方法的核心概念:

——类:是对某一事物的描述,是抽象的,概念上的;类描述了对象的属性,行为(方法,函数);

——对象:是实际存在的该类事物的每个个体,因而也成为实例(instance);

一个类可以产生多个对象;面向对象的重点是类的设计;

4.对象的产生(如Person类的对象)

Person p1=new Person()

首先,通过new关键字,在堆内存中创建一个Person对象(会对其中各种类型的成员变量自动进行初始化赋值),然后栈内存中分配一个Person变量p1p1就是对象的引用句柄(对象本身在堆内存中),引用变量的值等于对象在堆中的首地址。以后用引用变量代表堆中的对象;通过引用变量调用对象的成员;<对象名>.<对象成员>;

5.对象的比较:“==”运算符与equals方法的区别

——“==”运算符用于比较两个变量的值是否相等

——equals用于比较两个对象的内容是否一样

6.比较数组内容是否一致,用Arrays.equals方法

7.System.out.println(Object obj);//

1.按照平台默认字符串编码将String.valueof(Object)方法生成的字符串转换为字节,并完全以write(int)方法的方式写入这些字节;

String.valueof(Object obj);//如果obj值为null,则字符串等于“null“,否则,返回obj.toString()的值;

obj.toString()通常会返回一个“以文本方式表示“此对象的字符串。

return getClass().getName() + '@' + Integer.toHexString(hashCode())

8.当一个对象被创建时,首先会调用构造函数,在构造函数中可以初始化一些信息,构造函数可以重载。如果没有显示的定义构造函数,系统会默认的生成一个无参的构造函数,如果自己显示的定义过了,那么系统就不会给提供无参构造函数了;

9.this是什么?

在每个成员方法内部,都有一个this引用变量,指向调用该方法的对象的首地址;当一个构造方法调用另一个构造方法时我们用this(参数 )

10.垃圾回收机制

finalize()方法是在Object类中定义,每个类都可以继承;当对象被清理掉之后系统会自动调用finalize()方法;System.gc()函数可以强制进行垃圾回收;

. 本章知识“为什么”:

1.为什么属性变量一般使用私有(private)?

实现类的封装性:如果一个外面的程序可以随意修改一个类的成员变量,会造成不可预知的程序错误,就像一个人的身高,我们不能被外部随意修改,只能通过各种摄取营养的方法去修改这个属性。所以我们使用private修饰符,作用是成员成了私有成员,只能被这个类的其他成员方法调用,不能被其他类中的 方法所调用;只有通过public方法来对这个变量进行访问。

四.学生信息表(包括排序);

可以有两种方法实现:

第一种方法

//s1,s2,s3,s4分别是Student的实例对象;

TreeSet al=new TreeSet();

al.add(s1);

al.add(s2);

al.add(s3);

al.add(s4);

Iterator it=(Iterator) al.iterator();

//TreeSet 实现了自动排序,也可以让Student类实现Comparable接口,重新compare

第二种方法

ArrayList al=new ArrayList();

al.add(s1);

al.add(s2);

al.add(s3);

al.add(s4);

Iterator it=(Iterator) al.iterator();

Collections.sort(al);

用这种方法排序时,student类必须实现Comparabler接口,重新compare方法;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值