把昨天的日记补上,看看表都11点了,想睡觉了,算了,今日事,今日毕,还是坚持下吧,把今天学习的也记录下,白天上班,晚上明显感觉时间不够。。。。
面向对象
面向对象三大特征:
–
封装
(Encapsulation)
–
继承
(Inheritance)
–
多态
(Polymorphism)
1、==和equals()的区别
==是比较引用变量的值
equals()是比较两个对象中的内容是否一致
如 string a1= new string("abc");
string a2= new string("abc");
a1==a2 是false 如果用a1.equals(a2) 是true;
2、封装性:
一般定义变量为私有,然后通过内部定义的public类型的函数来调用此私有变量
如:
class student
{
private age;
public void setAge(int x)
{
if(x>0)
age=x;
}
public int getAge()
{
return age;
}
}
类的设计追求
强内聚(功能尽可能在内的内部完成)
弱耦合(提供给外部尽量少的方法调用)
3、构造函数
与类名称相同
无返回值
不能再方法中用return语句返回一个值
当我们已经定义构造函数时,编译器不会再构造默认的不带参数的构造函数
如
class Student
{
public Student( int x)
{
}
}
这时 通过 new Student() 初始化函数 就会报错
4、this
让类的成员变量和对其进行赋值的成员方法的形参变量同名,增加代码可读性
如:
class Student
{
int x;
public Student( int x)
{
this.x=x;
}
}
同一个类的构造方法里可用 this 调用其他重载的构造方法