1)面向对象
我的理解是:以对象为中心,辐射出很多功能或者属性。比如说,人是一个对象,呼吸、吃饭、走路等动作、肤色身高等属性(面向过程)是属于对象的,只要对象确定,功能就可以方便于增加减少。
2)面向对象三大特征:封装、继承、多态
以后做开发其实就是在找对象使用,没有对象的情况下就自己造一个对象来用。即 找对象、建对象、用对象、维护对象的关系。
3)类与面向对象的关系
面向对象是一种思想,这种思想在java中就是以类的形式表现出来的。
描述一个对象或者一类事物 ,无非是它的属性和行为(功能)
class car
{
string color = "red"; (car的属性)
void run
{
System.out.print(color); (car的功能,其实也就是一个函数。)
}
}
在上面描述完car这个事物后,在主函数中,需要的先new 这个对象才可以使用。new完的这个对象是存在于堆内存中的,所以在栈内存中就有了引用数据类型的第一种类类型数据
如果上面是在找对象的话,那么
car c = new car (); 这个就是在建对象
c.color="blue"; 这个就是在用对象
4)匿名对象
car c = new car ();
上面中new car () 就是一个匿名对象,使用的时候可以直接这样调用 ,new car () . color; new car () . run;
注意:匿名对象只是书写上的简化,但有局限性,即如果只调用成员一次,且调用的只是函数,就可以用匿名对象,调用多次成员或者调用对象属性的话而意义。
5)封装
封装:是指隐藏对象的属、行为,仅对外提供公共访问的方式。
private 是封装的一种方法。
class Person
{
private int age;
public void setAge ( int x ) age已经被private私有化了,所以得向外提供一个访问的接口,这时是通过一个函数的方式来提供对外访问的。
{
if ( x>0 && x<130)
age = x ;
else
System.out.println( "输入的年龄有误");
}
public int getAge ()
{
return age;
}
void speak ()
{
System.out.println(age);
}
}
class PrivateDemo
{
public static void main (String [] args )
{
Person p = new Person ();
p.setAge( 34 ) ;
p.speak;
}
}
6)构造函数
特点:构造函数的类名和函数名一致。
作用:可以给对象进行初始化,随着对象的建立而加载。
注意:当一个类里没有构造函数时,系统会自动给这个类添加一个空参数的构造函数。当自定义一个构造函数后,空参数的构造函数就不见了。
7)构造代码块
格式:
{
运行语句;
}
特点:给所有的对象进行初始化,随着对象的建立而加载。与构造函数的同:一、构造代码块先于构造函数的加载; 二、构造函数是给对应的对象进行初始化,构造代码块是给所有不同的对象进行初始化。
关键字:this
this. 代表的是本类的对象 。也就是说哪个对象在调用this所在的函数,this就代表哪个对象。
this语句:(没有一点)用于构造函数之间的调用。this语句只能放在构造函数的第一行。