面向对象三种特征:继承、封装、多态。
以后开发过程中就是找对象使用,没有对象就创建一个对象。(找对象--建立对象--使用对象---维护对象)。
类和对象的关系:
现实生活中的对象:张山,李四
想要描述就是只要提取对象中的共性内容,对具体进行抽象。
描述:比如这些共性有:姓名、年龄、性别、学习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用于构造函数之间互相调用。