类与对象
类:类是对具有相同属性和行为的事物的统称
对象:对象是类的具体体现。
一句话总结:类是抽象的,对象是具体的,类是对象的模板。
类的定义格式
//类名: 见名知意,每一个单词首字母大写
public class 类名{
//属性:成员变量
//行为:成员方法
}
使用类来描述学生这个事物
public class Student{
//属性:成员变量
String name;
int score;
//行为:成员方法
public void study(){
System.out.println("学生努力学习");
}
}
创建的对象的格式
类名 对象名 = new 类名();在测试类中,创建Student对象,指挥对象做事情。
public class TestStudent(){
public static void main(String[] args){
//创建Student对象
Student stu=new Student();
//给对象的属性赋值
stu.name="张三";
stu.score=98;
//获取学生的属性值
System.out.println(stu.name);
System.out.println(stu.score);
//调用学生的方法
stu.study();
}
}
成员变量和局部变量的区别
1.类中的位置不同:
1)成员变量:在类中,方法外
2)局部变量:在方法内部,或者方法声明上(形式参数)
2.作用范围不同:
1)成员变量:在整个类中都可以使用
2)局部变量:所在的方法中可以使用
3.内存中的位置不同:
1)成员变量:在堆内存中
2)局部变量:在栈内存中
4.生命周期不同
1)成员变量:随着对象的创建而创建,随着对象垃圾回收器回收而消失
2)局部变量:随着方法的调用而创建,随着方法调用结束而小数。
5.默认值不同
1)成员变量:有初始的默认值
2)局部变量:没有初始的默认值,不能直接使用。
private关键字
private是一个权限修饰符,用来修饰成员变量或者成员方法。被private修饰的成员,只能在本类中访问。
一般我们在创建一个类时,需要满足下面的要求
1.成员变量私有化
2.对外提供公共的访问方式
setXxx: 给成员变量赋值
getXxx:获取成员变量的值
this关键字
this表示本类对象的引用,当成员变量和局部变量重名时可以使用this进行区分。
this的本质:哪个对象调用方法,方法中的this就表示哪个对象。public class Student {
//被private修饰的成员变量,只能在本类中访问
private String name;
private int age;
//对外提供get和set方法
//设置姓名
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;
}
}封装性
封装指的是隐藏内部细节,对外提供公共的访问方式。
封装在代码中的体现
1.使用private修饰成员变量,提供get和set方法
2.方法是对特定功能代码的封装
3.类是对属性和功能的封装。
构造方法
构造方法用来在创建对象时做一些初始化的操作,每次创建对象构造方法都会执行。
1.构造方法的格式
//名称必须和类名相同
public 类名(形式参数){
...
}
2.构造方法什么时候执行?
答:每次创建对象的时候执行构造方法
3.构造方法用来干什么?
答:构造方法用来在创建对象时做一些初始化的操作
构造方法就是用来创建对象的。
4.构造方法的注意事项?
1)如果没有写构造方法,系统会自动添加一个空参数构造方法。
2)如果写了构造方法,系统不再添加空参数构造方法。
建议手动添加一个空参数构造方法
一个标准类的写法
一个标准的类,包含成员变量、成员方法和构造方法。
public class 类名{
//成员变量: 描述事物的属性
//构造方法:用来创建对象,并且可以做一些初始化操作
//get和set方法:获取和设置属性值
}写一个标准的Student类
public class Student {
//属性:姓名、年龄、性别
private String name;
private int age;
private String sex;
//空参数构造方法
public Student() {
}
//有参数构造方法
public Student(String name, int age, String sex) {
this.name = name;
this.age = age;
this.sex = sex;
}
//提供get和set方法:alt+insert
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}public class TestStudent {
public static void main(String[] args) {
//使用空参数构造方法,创建对象
Student s1 = new Student();
//给属性赋值
s1.setName("张三");
s1.setAge(18);
s1.setSex("男");
//获取属性值
System.out.println(
s1.getName() + "," + s1.getAge() + "," + s1.getSex());
System.out.println("------------------");
//使用有参数构造方法,创建对象
Student s2 = new Student("李四", 20, "女");
System.out.println(
s2.getName() + "," + s2.getAge() + "," + s2.getSex());
}
}
文章转载自是汐江呀,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




