面向:拿、找
对象:能干活的东西
面向对象编程:拿东西过来做对应的事
重点学习内容
一、学哪些
- 学习获取已有对象并使用
- 学习如何自己设计对象并使用(面向对象的语法)
- 内容
- 设计对象并使用
- 封装
- this关键字
- 构造方法
- 标准JavaBean
- 对象内存图
- 成员变量、局部变量的区别
设计对象并使用
- 类和对象
- 补充
·类:是对象共同特征的描述
·对象:是真实存在的具体东西
在Java中,必须先设计类,才能获得对象
如何定义类
public class 类名{
1.成员变量(代表属性,一般是名词)
2.成员方法(代表行为,一般是动词)
3.构造器
4.代码块
5.内部类
}
例:
public class Phone {
String brand;
double price;
public void call(){
System.out.println("手机在打电话");
}
public void playGame(){
System.out.println("手机在打玩游戏");
}
}
如何得到类的对象
类名 对象名 = new 类名();
例:
Phone p = new Phone();
如何使用对象
·访问属性:对象名.成员变量
·访问行为:对象名.方法名(...)
补充
·用来描述一类事物的类,专业叫做:JavaBean类。在JavaBean类中,是不写main方法的。
·在以前,编写main方法的类,就叫做测试类。我们可以在测试类中创建JavaBean类的对象并进行赋值调用。
·类名首字母建议大写,需要见名知意,驼峰模式。
·一个Java文件中可以定义多个class类,且只能一个类public修饰,而且public修饰的类名必须成为代码文件。实际开发中建议还是一个文件定义一个class类。
·成员变量的完整定义格式是:修饰符 数据类型 变量名称 = 初始化值; 一般无需指定初始化值,存在默认值。
1.定义类的建议与注意
·类名首字母建议大写、英文、有意义,满足驼峰模式,不能用关键字,满足标志符规定。
·一个代码文件中可以定义多个类,但只能一个类是public修饰的,public修饰的类名必须是Java代码得文件名称。
- 成员变量的格式是什么样的,有什么特点
·成员变量的完整定义格式是:修饰符 数据类型 变量名称 = 初始化值;
封装
对象代表什么,就得封住对应的数据,并提供数据对应的行为。
理解封装思想的好处
让编程变的简单,有什么事,找对象,调方法就行。
private关键字
·是一个权限修饰符
·可以修饰成员(成员变量和成员方法)
·被private修饰的成员只能在本类中才能访问
·针对private修饰的成员变量,如果需要被其他类使用,应提供相应的操作
·提供setXxx(参数)方法,用于给成员变量赋值,方法用public修饰
·提供getXxx()方法,用于获取成员变量的值,方法用public修饰
this关键字
局部变量:方法里面称为局部变量
成员变量:方法外面称为成员变量
- 就近原则
System.out.println(age); (先找局部位置)
System.out.println(this.age); (直接找成员位置)
- this的作用
可以区别成员变量和局部变量
- this的本质和内存图
构造方法
作用:在创建对象时给成员变量进行赋值的。
格式:
public class Student{
修饰符 类名(参数){
方法体;
}
}
特点:
- 方法名与类名相同,大小写也要一致
- 没有返回值类型,连void都没有
- 没有具体的返回值(不能由return带回结果数据)
1.构造方法的定义
·如果没有定义构造方法,系统将给出一个默认的无参数构造方法
·如果定义了构造方法,系统将不再提供默认的构造方法
2.构造方法的重载
·带参构造方法,和无参构造方法,两者方法名相同,但是参数不同,这叫做构造方法的重载
- 推荐的使用方式
·无论是否使用,都手动书写无参数构造方法,和带全部参数的构造方法
标准的JavaBean类
- 类名需要见名知意
- 成员变量使用priva修饰
- 提供至少两个构造方法
·无参构造方法
·带全部参数的构造方法
- 成员方法
·提供每一个成员变量对应的setXxx/getXxx
·如果还有其他行为,也需要写上
例:
public class user {
private String username;
private String password;
private String email;
private String gender;
private int age;
public user() {
}
public user(String username, String password, String email, String gender, int age) {
this.username = username;
this.password = password;
this.email = email;
this.gender = gender;
this.age = age;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}