面向对象思想
1.面向过程
把需要完成的事情,自己一步一步的完成。
2.面向对象
找一个能帮你完成事情的对象,让对象帮你做事情。
面向对象的特点:
1) 对象是客观存在的事物,都可以看做对象(电脑、手机、人....)
万物皆对象
2) 把复杂的问题简单化
3) 把我们从执行者,变为指挥着
类与对象的关系
类:类是对同一类具有相同属性和行为的事物的统称
电脑类、人类...
对象:对象是类的具体体现
总结:类是对象的模板,同一个模板(类),可以创造出很多个对象。
类的定义
public class 类名{
//成员变量 - 属性
//成员方法 - 行为
}
/*
描述电脑
属性:品牌、颜色、价格...
行为:打游戏、看电影...
*/
public class Computer{
//成员变量 - 属性
String brand;
String color;
int price;
//成员方法 - 行为
//打游戏
public void playGame(){
System.out.println("打游戏");
}
//看电影
public void watchMovie(){
System.out.println("看电影");
}
}
创建对象
/*
创建对象的格式:
类名 变量名 = new 类名();
*/
public class StudentDemo{
public static void main(String[] args){
//创建Computer类的对象
Computer com = new Computer();
//调用属性
com.brand="华为";
com.color="银灰";
com.price=9998;
System.out.println(com.brand+","+com.color+","+com.price); //华为、银灰、9998
//调用行为
com.playGame():
com.watchMoive();
System.out.println("--------------------------");
//创建Computer类的对象
Computer com1 = new Computer();
//调用属性
com1.brand="小米";
com1.color="黑色";
com1.price=7899;
System.out.println(com1.brand+","+com1.color+","+com1.price); //小米、黑色、7899
//调用行为
com1.playGame():
com1.watchMoive();
}
}
对象的内存图
private关键字
private关键字是私有的意思,可以用来修饰成员变量和成员方法,被private修饰的成员只能在本类中使用。
Java的封装性,通过private来体现
1.一般会把类中的成员变量用private修饰
2.然后再提供get和set方法
public class Teacher {
private String name;
public void setName(String name){
this.name=name;
}
public String getName(){
return name;
}
}
this关键字
-
this表示本类对象,哪个对象调用方法,方法内部的this就表示哪个对象
-
当成员变量和局部变量重名时,可以使用this来区分。
构造方法
1.构造方法的格式
//构造方法的名称和类名相同
public 类名(参数列表){
}
2.构造方法是干什么用的?
答:构造方法是用来创建对象的,每次new 对象构造方法都会执行。
Student s=new Student(); //这就是在执行构造方法
3.构造方法的注意事项
1.没有写构造方法,系统会自动补充一个空参数构造方法
2.如果写了构造方法,系统不再补充空参数构造方法
4.构造方法中写什么代码?
一般在构造方法中做一些初始化的操作,如果在创建对象时给成员变量赋值。
一个标准类的写法
public class Student {
//属性:姓名、年龄...
private String name;
private int age;
//空参数构造方法
public Student() {
}
//在创建对象的同时,给成员变量赋值
public Student(String name, int age) {
this.name = name;
this.age = age;
}
//提供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 class StudentTest {
public static void main(String[] args) {
//创建Student对象,空参数构造方法
Student s1=new Student();
//设置姓名和年龄
s1.setName("老王");
s1.setAge(18);
//获取姓名
String name = s1.getName();
System.out.println("姓名:"+name);
//获取年龄
int age = s1.getAge();
System.out.println("年龄:"+age);
System.out.println("----------");
//创建对象的同时,给姓名和年龄赋值
Student s2=new Student("小王",20);
//获取姓名
String name2 = s2.getName();
System.out.println("姓名:"+name2);
//获取年龄
int age2 = s2.getAge();
System.out.println("年龄:"+age2);
}
}