面向对象:
对象就是客观存在的事物,java中万物皆对象。
Java的面向对象有三个核心思想:
封装 继承 多态
类:
类是具有相同属性(名词)和相同行为(动词)的一类事物的抽象描述。
对象:
对象是类的具体体现,一个类可以有多个对象
2.类的定义和对象创建public static void main(String[] args) {
// 创建对象
// 类名 变量名 = new 类名();
Phone p = new Phone();
// 每个对象都拥有这个类的成员变量和成员方法
// 给这个对象的变量赋值
// 我这个手机的价格是899
p.price = 899;
// 我这个手机的品牌是苹果
p.brand = "苹果";
// 我这个手机是蓝色的
p.color ="蓝色";
// 输出
System.out.println(p.brand + " " + p.color + " " + p.price);
// 调用方法
p.call();
p.sendMseeage();
}
}
// 定义一个手机类(实体类)
class Phone{ // 类名和文件名不同不能加public
// 属性 成员变量
int price; //价格
String brand; //品牌
String color; //颜色
// 行为 成员方法
// 打电话
public void call(){
System.out.println("用" + brand +"手机给别人打电话");
}
// 发短信
public void sendMseeage(){
System.out.println("用" + brand +"手机群发短信");
}
}
3.类的区别
类分为两种:
测试类
有main方法的类叫测试类
实体类
没有main方法,定义成员变量和成员方法的类叫实体类
java中根据定义位置的不同,可以把变量分为两种变量
定义位置:
成员变量是: 定义在类中方法外
局部变量是: 定义在方法中的变量
内存位置:
成员变量是: 存储在堆内存
局部变量是: 存储在栈内存
生命周期:
成员变量是: 随着对象的创建而产生
局部变量是: 随着方法的调用而产生
默认值不同:
成员变量是: 有默认值的.不赋值也有值
局部变量是: 没有默认值
成员变量的默认值:
整数 0
小数 0.0
布尔 false
字符 空字符
字符串 null(null代表空的意思)
作用:
在成员变量和局部变量重名时,可以使用this来区分成员变量和局部变量。
public class Phone {
// 成员变量
String brand; //品牌
int price; //价格
// 成员方法
public void method() {
// 局部变量
int price = 100;
// 输出变量
System.out.println(price);// 100 默认 就近原则
System.out.println(this.price);// 0
}
public void method2() {
// 输出变量
System.out.println(price); // 0 默认 就近原则
}
}
public static void main(String[] args) {
// 创建手机对象
Phone p = new Phone();
p.method();
p.method2();
}
7.封装
private: private:私有的 能够也只能够用来修饰成员变量和成员方法 用private修饰之后成员就不能被别的类访问,只能在当前类中访问 setXxx getXxx: setXxx(): 功能是别的类给成员变量赋值 getXxx(): 功能是别的类获取成员变量的值8.构造方法
构造方法的格式:
public 类名(){
}
构造方法的特点:
1.构造方法的方法名和类名是一样的
2.构造方法没有返回值类型,连void也没有
构造方法的功能:
构造方法的作用是创建对象,创建对象的时候调用的就是构造方法
构造方法还能在创建对象的时候给成员变量赋值
构造方法的注意事项:
如果在一个类中不写构造方法,类中会默认有一个系统提供的空参构造
如果一个类中手动写了构造方法,系统就不会给提供默认的空参构造了
所以以后我们要写构造方法就直接写两个…
空参构造方法和有参构造方法其实也是重载的关系
构造方法虽然没有返回值类型,但是它也是方法,能出现return这个关键字,只不过后面不能写值
总结什么是类? 什么是对象? 什么是测试类?什么是实体类? 成员变量和局部变量的区别: 定义位置有什么区别? 内存位置有什么区别? 生命周期有什么区别? 默认值有什么区别? this在什么时候用?有什么作用? private是什么意思? private能加在什么位置? 加了private有什么用? set方法和get方法有什么用? 构造方法是用来干什么的? 如果类中没有写任何构造方法,这个类是不是就没有构造方法呢?



