一、类
定义:
对于一类事物的抽象描述
注意:
使用class修饰 一个文件中只允许有一个public(权限修饰符)修饰的类
类的描述:
属性:一般都是用 名词来修饰
行为:一般都是用 动词来修饰
成员书写:
成员变量(实例变量)写在 类中 方法外
成员方法(实例方法)写在 类中
成员变量和局部变量的区别:
1.书写位置
成员变量:类中 方法外
局部变量:方法内 或 方法声明中
2.内存中的位置
成员变量:存在于堆内存中
局部变量:加载到栈内存中
3.初值
成员变量:有默认初始值(堆给的)
局部变量:没有默认值 如果要使用的话 必须要给初值
4.生命周期
成员变量:随着对象的创建而创建 随着对象的销毁而销毁
局部变量:随着方法存在
二、 对象:
定义:
用类 实例出来的具体事物
书写:
类名 对象名 = new 类名();(引用数据类型)
举例一:
创建Animal类:
class Animal {
String name = "旺财";
int age = 2;
String gender = "公";
public void sayHi() {
System.out.println("姓名:" + name);
System.out.println("年龄:" + age);
System.out.println("性别:" + gender);
}
public void sleep() {
System.out.println(name + " 在睡觉");
}
public void eat() {
System.out.println(name + " 在吃饭");
}
}
main中函数调用:
public static void main(String[] args) {
Animal dog = new Animal();
dog.name = "来福";
String stringName = dog.name;
System.out.println(stringName);
dog.sayHi();
dog.eat();
dog.sleep();
}
举例二:
创建Car类:
class Car {
String name;
String color;
int tireNum;
public void run(int i) {
int num = 10;
System.out.println(num);
System.out.println("我会动");
}
public void hitMan() {
System.out.println("会撞人");
}
public void sayHi() {
System.out.println("牌子:" + name);
System.out.println("颜色:" + color);
System.out.println("轮胎个数:" + tireNum);
}
}
main中函数调用:
public static void main(String[] args) {
Car car = new Car();
car.name = "法拉利";
car.color = "红色";
car.tireNum = 5;
car.sayHi();
}
匿名对象:
定义:
没有名字的对象
1.如果你只调用方法的话 这是可以使用匿名对象(测试的时候会用 测试方法能不能成功会用)
2.可以当做参数进行传递
好处:当参数时 代码简便
弊端:无法直接修改里面的值
举例三:
创建Person类:
class Person {
String name = "王龙";
int age = 16;
public void sayHi() {
System.out.println(name + " " + age);
}
}
main中函数调用:
new Person().sayHi();
new Person().name = "水";
new Person().sayHi();
面向对象:
特征:
1.封装
2.继承
3.多态
封装:
定义:
将类中属性或方法对外界隐藏 然后提供公共的访问方式
体现:
成员变量私有化
私有(权限修饰符)private
java bean实体类规范:
1.成员变量私有化(并且提供set/get方法)
举例四:
创建Student 并封装
class Student {
private String name;
private int age;
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return this.age;
}
public void setAge(int age) {
this.age = age;
}
public void sayHi() {
String name = "猜猜我是谁?";
System.out.println(name + " " + this.age);
}
}
调用封装:
public static void main(String[] args) {
Student student = new Student();
student.setName("贵水");
student.setAge(21);
System.out.println(student.getName() + " " + student.getAge());
student.sayHi();
}