---------------------- android培训、java培训、期待与您交流! ----------------------
一丶函数
1、函数是定义在类中的具有特定功能的一段独立小程序。也称之为方法。
2、函数的调用,以上的程序都可以用这个方法解决!
3、函数的重载
①在同一个类中,允许有一个以上的同名函数,只要他们的参数个数或者参数类型不同即可。
②当定义的功能相同,但参与运算的未知内容不同,那么,就定义一个函数名称表示功能,方便阅读,通过参数列表的不同区分多个同名函数。
4、构造函数示例:
①特点:函数名和类名相同,没有返回值类型,不可以写return语句。
②作用:给对象进行初始化
③多个构造函数是以重载的形式存在的
class Person
{
/*
构造函数小细节:如果在一个类中没有定义构造函数,那么系统会默认给该类加入一个空参数的构造函数。例如:Person(){},方便初始化,否则无法创建对象
当类中自定义了构造函数,那么默认的构造函数就会不存在了
*/
/*Person()
{
System.out.println("person run");
}
*/
private String name;
public void setName(String name)
{
this.name=name;
}
public String gerName()
{
return name;
}
private int age;
/*
构造代码块
作用:初始化对象
创建对象的同时,就开始运行,而且优先于构造函数执行
与构造函数的区别:构造代码块是给所有对象进行统一初始化,而构造函数是给对应的对象初始化。
构造代码块中定义的事不同对象共性的初始化内容
*/
{
//System.out.println("person code run");
cry();
}
Person()
{
System.out.println("A:name="+name+",,"+"age="+age);
//System.out.println("cry");
//cry();
}
Person(Sring n)
{
name=n;
System.out.println("B:name="+name+",,"+"age="+age);
//System.out.println("cry");
//cry();
}
Person(Sring n,int a)
{
//name=n;
this(n);//构造函数之间的调用用词方法
age=a;
System.out.println("C:name="+name+",,"+"age="+age);
//System.out.println("cry");
//cry();
}
public void cry()
{
System.out.println("cry");
}
/*
构造函数在对象创建的同时,就开始运行,初始化对象,一个对象建立,构造方法只运行一次
一般函数是对象调用才执行,给对象向添加对象具备的功能,可以被该对象调用多次
*/
}
class PersonDemo_2
{
public static void main(String[] args)
{
//Person p=new Person();
/*
我们发现"new Person()"的后半部分和"Person"类中的"Person()"方法相同,检测程序可以运行,说明,对象创建时就会调用"Person"类中与之对应的的构造方法
从这一点可以看出来构造函数的作用是:给对象进行初始化
*/
Person p1=new Person();//初始化只哭一次
//p1.cry();//哭第二次,一次类推
//Person p2=new Person("李四");
//p2.setName("李二");
//System.out.println(p2.getName());
//Person p3=new Person("张三",10);
}
}
二丶面向对象
1、面向过程,强调的是功能行为。
2、将功能封装进对象,强调具备了功能的对象。
3、面向对象是基于面向过程的。
4、三个特征:封装,继承,多态。
5、开发:找对象使用,没有对象,就创建一个对象。----找对象,建立对象,适用对象,维护对象的关系。
6、对象就是功能的封装。也能封装其他的元素。
7、类和对象的关系:类:java用类对现实生活中事物的描述(就像人用汉语描述生活);对象:就是这类事物,实实在在存在的个体。
9、成员变量和局部变量。成员变量作用于整个类中,存在于堆内存;局部便令作用于方法或者语句中,存在以栈内存。成员变量 是随对象出现的,如果不出现对象(不new对象),则在堆内存 是不存在成员变量的
10、匿名对象:
①当对对象方法仅进行一次调用;
②匿名对象可以作为实际参数进行传递
例如:Car c=new Car();c.num=5;两句话可以简写成:new Car().num=5;(这就是匿名对象)
三丶面向对象的封装
1、封装是指隐藏对象的属性和实现细节,只对外提供公共访问方式。
2、代码示例:
/*
私有只是封装的一种表现形式;封装不是私有
之所以对外提供访问方式,是因为可以在访问方式中加入逻辑判断等语句,对访问的数据进行操作,提高代码健壮性。
*/
class Person
{
//Private:权限修饰符,修饰类中的成员(成员变量,成员函数);私有只在本类中有效
private int age
//age私有化以后,类以外即使建立对象也不能直接访问,但是人应该有年龄,就需要在Person类中提供访问age的方法
//方法
public void setAge(int age)//设置年龄
{
if(this.age>0&&this.age<130)
{
this.age=age;
speak();
}
else
System.out.println("非法年龄");
}
pulic int getAge()//获取年龄
{
return age;
}
/*
一个成员变量通常对应两种访问方式:设置和获取
*/
void speak()
{
System.out.println("age="+age);
}
}
class PersomDemo
{
public static void main(String[] args)
{
Person p=new Person();
//p.age=20;
/*
也可以赋值"-20";但是和现实不符合,造成这样的原因是因为age可以直接被访问到,那么解决这个问题,我们可以隐藏掉age,不让直接访问。用修饰符:private
*/
p.setAge(20);
//p.speak();
}
}
---------------------- android培训、java培训、期待与您交流! ----------------------