1、类的基本使用:一般按照javabean风格来,不会这样简单定义
--暂时我们就讲封装,不是简单的搞个函数就可以了,希望认真看
--类:这里我们可以理解为一个模板,我们之前学过的int boolean short这些都可以实例化一个对象出来,其实也可以视为类
--类包含了 属性 和 方法
--属性:事物的状态信息,就是成员变量
--方法:事物的行为,就是成员方法
--初级的 类定义和使用:
public class ClassName {
//成员变量:
//成员方法:
}
--初级实例:这里成员变量默认public,容易被直接调用而改变不安全
public class Student {
//成员变量
String name;//姓名
int age;//年龄
//成员方法
//学习的方法
publicvoid study() {
System.out.println("好好学习,天天向上");
}
//吃饭的方法
publicvoid eat() {
System.out.println("学习饿了要吃饭");
}
}
--调用:记住一个文件夹中只能有一个public class,否则会报错
--导入包可以先新建包,将所有类放在一个包中/或几个包中看情况导入使用即可
public static void main(String [] args){
Student stu = new Student();
stu.student = "lalalalal";
System.out.println(stu.student);
}
--对于两个对象来自于同一个类的实例时,其属性是各自独有的,方法是共享的,只需要拿着方法标记在方法区中找到对应的方法即可调用
2、成员变量
--成员变量:类中 方法外 有初始化值 堆内存
--局部变量:类中 方法中 没有初始化值 栈内存
3、封装
封装:不简单是将动作写在方法中,而且封装变量值使其不能直接被调用,提供函数get set用于设置和取值
--private关键字:限制访问
--使用格式如下:
private 数据类型 变量名 ;
--private为权限修饰符,代表最小权限。可以修饰成员变量和成员方法,被private修饰后的成员变量和成员方法,只在本类中才能访问。
--this关键字:自我调用,用于赋值以及类中其他需要使用自身的场合
代表所在类的当前对象的引用(地址值),即对象自己的引用。
--示例如下:
public class Student {
private String name;
private int age;
public void setName(String name) {
//name = name; # 一般这种情况下需要区分自身和形参,之所以形参和成员变量名一样也是为了方便API的阅读
this.name = name;
}
public String getName() {
return name;
}
public void setAge(int age) {
//age = age;
this.age = age;
}
public int getAge() {
return age;
}
}
4、构造函数
--每一个类都有一个构造方法,默认是无参数构造方法
--如果自定义构造方法,则系统不会使用默认的构造方法
--构造方法:和类型名一致
修饰符 构造方法名(参数列表){ //构造方法名 == 类名
// 方法体
}
--注意:构造方法没有返回值类型,以下是普通方法基本格式:
修饰符 返回值类型 方法名(参数列表){
函数体
}
--构造方法,[无参数] 和 [有参数]如下所示:
public class Student {
private String name;
private int age;
// 无参数构造方法
public Student() {}
// 有参数构造方法
public Student(String name,int age) {
this.name = name;
this.age = age;
}
}
--构造方法注意事项:
1. 如果你不提供构造方法,系统会给出无参数构造方法。
2. 如果你提供了构造方法,系统将不再提供无参数构造方法。
3. 构造方法是可以重载的,既可以定义参数,也可以不定义参数。
5、javaBean风格编码
JavaBean 是 Java语言编写类的一种标准规范。符合 JavaBean 的类,要求类必须是具体的和公共的,并且具有无参数的构造方法,提供用来操作成员变量的 set 和 get 方法。
--javabean模板:
public class ClassName{
//成员变量
//构造方法
//无参构造方法【必须】
//有参构造方法【建议】
//成员方法
//getXxx()
//setXxx()
}
--一个标准javabean定义方式
public class Student {
//成员变量
private String name;
private int age;
//构造方法
public Student() {}
public Student(String name,int age) {
this.name = name;
this.age = age;
}
//成员方法
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
}
--javabean使用
public static void main(String[] args) {
//无参构造使用
Student s= new Student();
s.setName("柳岩");
s.setAge(18);
System.out.println(s.getName()+"‐‐‐"+s.getAge());
//带参构造使用
Student s2= new Student("赵丽颖",18);
System.out.println(s2.getName()+"‐‐‐"+s2.getAge());
}