一: 概念
1:类:
形成:
2:对象:类的实例化产物。
3:类和对象的关系:
4:构造方法:
当前对象进行初始化。
语法:
public 类名(){
}
5:构造器和普通函数的区别:
(1)结构上:
(2)运行上的不同:
6:构造代码块:
语法:{
....
}
作用:
给所有的对象的对象进行初始化:
构造代码块和构造器的不同:
7:this关键字:
a:this关键字表示当前对象的引用。
b:在用本类的构造器的第一条语句处,表示对其他构造器的调用:
this();
this(name);
8:方法的重载:
定义方法时,方法名称相同,参数列表不同(参数的个数或者是参数的类型不同),和方法的返回值
没有任何的关系。
void show();
void show(Person p);
void show(Car c);
9: 练习:Person类。 name age。
定义方法: 比较两个人的年龄是否相等? 相等返回true。
1:修饰符,可以修饰成员变量,方法, 块。
static 修饰的成员特点:
1:随着类的加载而加载。优于对象而存在。
随着类的卸载而卸载。
2:生命周期长,是跟类相同。:
3:用static修饰的变量,是所有对象共享。
4:使用static修饰的变量,可以通过对象点的形式调用。
还可以通过类名.方式是调用。
2:成员变量(实例变量) 和 类变量(静态变量)
成员变量:是对象所有,随着对象的创建而存在。
生命周期跟对象的生命周期相同。
存放在堆内存当中。
类变量: 用static修饰的变量称之为类变量。
生命周期和类相同,随着类的加载而加载,随着类的消失而消失。
static修饰的成员变量,存放在单独的区域,称之为方法区。共享区。数据区。
3:static利弊:
优点: 对对象的共享的数据可以使用static修饰。可以节省空间。 没有必要每一个对象都存放一份。
弊端: a: 生命周期长。
b:访问出现了局限。(静态方法当中只能访问静态)
三: static修饰方法:
1:方法定义语法:
public static 返回值类型 方法名(){
}
特点:
(1)用static修饰的方法,随着类的加载而加载。
(2)生命周期长。
(3)用static修饰的方法 使用对象类调用没有问题的。
用staitc修饰的方法多了一种调用方式: 类名.方法名();
(4)用static修饰的方法称之为静态方法,静态方法当中不能出现this,super关键字。
(5)静态方法当中只能访问静态。 不能访问非静态。
原因: 静态方法由于对象存在。
四:static修饰块:
静态块:有static修饰的块称之为静态块。
执行:随着类的加载而执行。
作用: 给类进行初始化。
static {
}
五: 静态块 动态块 构造器的执行顺序:(面试问题)
静态块:类被加载的时候优先执行
动态块:给所有对象进行初始化。
构造器:给具体的某一个对象就行初始化。
六:工具类:
工具类: 一个类当中所有的方法都是静态的,属性成员也都是静态的,这么样的类称之为工具类.
1:类:
形成:
2:对象:类的实例化产物。
3:类和对象的关系:
4:构造方法:
当前对象进行初始化。
语法:
public 类名(){
}
5:构造器和普通函数的区别:
(1)结构上:
(2)运行上的不同:
6:构造代码块:
语法:{
....
}
作用:
给所有的对象的对象进行初始化:
构造代码块和构造器的不同:
7:this关键字:
a:this关键字表示当前对象的引用。
b:在用本类的构造器的第一条语句处,表示对其他构造器的调用:
this();
this(name);
8:方法的重载:
定义方法时,方法名称相同,参数列表不同(参数的个数或者是参数的类型不同),和方法的返回值
没有任何的关系。
void show();
void show(Person p);
void show(Car c);
9: 练习:Person类。 name age。
定义方法: 比较两个人的年龄是否相等? 相等返回true。
显示当前对象的名称,年龄。
public class Day8 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Person p1=new Person();
Person p2=new Person();
p1.age=23;
p1.name="Sherry";
p2.name="Cherry";
p2.age=24;
p1.show();
p2.show();
if(p1.isEqual(p2))
System.out.println("年龄相等");
else
System.out.println("年龄不等");
}
}
class Person{
String name;
int age;
String sex;
public boolean isEqual(Person p) {
return p.age==this.age? true:false;
}
public void show() {
System.out.println("姓名:"+name+"\t年龄:"+age);
}
}
二: static关键字:
1:修饰符,可以修饰成员变量,方法, 块。
static 修饰的成员特点:
1:随着类的加载而加载。优于对象而存在。
随着类的卸载而卸载。
2:生命周期长,是跟类相同。:
3:用static修饰的变量,是所有对象共享。
4:使用static修饰的变量,可以通过对象点的形式调用。
还可以通过类名.方式是调用。
2:成员变量(实例变量) 和 类变量(静态变量)
成员变量:是对象所有,随着对象的创建而存在。
生命周期跟对象的生命周期相同。
存放在堆内存当中。
类变量: 用static修饰的变量称之为类变量。
生命周期和类相同,随着类的加载而加载,随着类的消失而消失。
static修饰的成员变量,存放在单独的区域,称之为方法区。共享区。数据区。
3:static利弊:
优点: 对对象的共享的数据可以使用static修饰。可以节省空间。 没有必要每一个对象都存放一份。
弊端: a: 生命周期长。
b:访问出现了局限。(静态方法当中只能访问静态)
三: static修饰方法:
1:方法定义语法:
public static 返回值类型 方法名(){
}
特点:
(1)用static修饰的方法,随着类的加载而加载。
(2)生命周期长。
(3)用static修饰的方法 使用对象类调用没有问题的。
用staitc修饰的方法多了一种调用方式: 类名.方法名();
(4)用static修饰的方法称之为静态方法,静态方法当中不能出现this,super关键字。
(5)静态方法当中只能访问静态。 不能访问非静态。
原因: 静态方法由于对象存在。
四:static修饰块:
静态块:有static修饰的块称之为静态块。
执行:随着类的加载而执行。
作用: 给类进行初始化。
static {
}
五: 静态块 动态块 构造器的执行顺序:(面试问题)
静态块:类被加载的时候优先执行
动态块:给所有对象进行初始化。
构造器:给具体的某一个对象就行初始化。
六:工具类:
工具类: 一个类当中所有的方法都是静态的,属性成员也都是静态的,这么样的类称之为工具类.
工具类通常情况是对外提供一些通用性的功能,不要创建对象。将构造器私有。
创建Java文档