1设计对象并使用,2.对象内存图,3构造器,4this关键字,5封装,6标准JavaBean,7成员变量和局部变量区别,8面向对象综合案例
设计对象并使用
设计类:
public class 类名{
1.成员变量,代表属性
2.成员方法,代表行为
3.构造器
4.代码块
5,内部类
}
类(首字母大写,驼峰模式):类是设计图,共同特征的描述
对象:是真实存在的具体实例
开发中一个文件定义一个class类
成员变量的完整定义格式:修饰符 数据类型 变量名称 = 初始化值;
一个代码文件可以定义多个类,只能一个类public修饰,public修饰i类名必须是Java代码文件名称
2.对象内存图
两个变量指向同一个对象
3构造器
构造器:可以用于初始化一个类的对象,并返回对象的地址
构造器格式:
修饰符 类名(形参列表){
…
}
public class Car{
public Car(){}
public Car(String n ,double p ){}
}
Car c = new Car();
Car c1 = new Car(“奔驰”,39.8);
无参构造器默认存在:初始化对象时,成员变量的数据均采用默认值
有参构造器在初始化对象的时候,同时可以接收参数作为对象进行赋值;
this关键字
可以用于指定访问当前对象的成员变量,成员方法
this相当于该类
this关键字出现在构造器和成员方法中,代表当前对象的地址
this关键字在构造器中,成员方法中可以指定访问当前对象的成员
public class Car {
String name;
double price;
public Car(String name,double price){
this.name = name;
this.price = price;
}
}
封装
封装原则:对象代表什么,就要封装对应的数据,提供数据对应的行为(圆被画,不是人画圆)
人关门:门自己关自己
封装优势:让编程更简单,有什么需要直接找对象,调方法
getter setter方法
public class test {
public static void main(String[] args) {
Student s = new Student();
s.setAge(20);
System.out.println(s.getAge());
}
}
public class Student {
private int age;
public void setAge(int age){
if(age>=0 &&age<=200){
this.age=age;
}else {
System.out.println("年龄数据有问题");
}
}
public int getAge(){
return age;
}
}
标准JavaBean
JavaBean:成员变量使用private,提供成员变量对应的set/get方法
必须提供无参构造器,有参构造器可有可无
public class test {
public static void main(String[] args) {
User u1 = new User();
u1.setName("吴彦祖");
u1.setHeight(180);
u1.setSalary(2000);
System.out.println(u1.getName());
System.out.println(u1.getHeight());
System.out.println(u1.getSalary());
}
}
public class User {
private String name;
private double height;
private double salary;
public User() {
}
public User(String name, double height, double salary) {
this.name = name;
this.height = height;
this.salary = salary;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getHeight() {
return height;
}
public void setHeight(double height) {
this.height = height;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
}