万物皆对象,只要是客观存在的事物,都可以称为对象
1.2什么是面向对象就是对一些客观事物的操作认知
1.3什么是类就是对生活中一类有共同属性和行为的事物的抽象
类是对象的数据类型
是具有相同属性和行为的对象的集合
1.4什么是属性对象具有各种特征,每个对象每个属性都有特定的值
1.5什么是对象的行为对象能执行的操作
1.6类和对象的关系类:就是对生活中一类有共同属性和行为的事物的抽象
对象:客观存在的事物
类是对象的的抽象
对象是类的实体
1.7类的定义对生活中一类有共同属性和行为的事物的抽象
是java程序的基本组成单位
类的组成:属性和行为
属性:在类中是通过成员变量来体现的(类中方法外的变量)
行为:在类中通过成员方法来体现(和前面的方法相比去掉static即可)
package mianxiang;
public class guanka1 {
//成员变量
String brand;
int price;
public void call(){
System.out.println("打电话");
}
public void sendMessage(){
System.out.println("发短信");
}
}
1.8对象的使用
先创建对象
然后再使用对象
package mianxiang;
public class demo {
public static void main(String[] args) {
//创建对象
guanka1 P = new guanka1();
//使用成员变量
System.out.println(P.brand);
System.out.println(P.price);
P.brand ="小米";
P.price =2999;
System.out.println(P.brand);
System.out.println(P.price);
//使用对象定义的变量需要重新赋值
//成员方法
P.sendMessage();
P.call();
}
}
案例:学生::
首先定义一个学生类 再定义一个学生测试类 在测试里边完成队成员变量和成员方法的使用
package mianxiang;
public class demo {
public static void main(String[] args) {
//创建对象
guanka1 P = new guanka1();
//使用成员变量
System.out.println(P.name+","+P.age );
P.name = "林青霞";
P.age=18;
System.out.println(P.name+","+P.age );
//成员方法
P.time1();
P.time2();
}
}
package mianxiang;
public class guanka1 {
//成员变量
String name;
int age;
public void time1(){
System.out.println("学习");
}
public void time2(){
System.out.println("写作业");
}
}
2.对象内存图
通过栈内存指向堆内存 刚开始的时候堆内存name与age没有被赋值 只有初始值 所以输出的是初始值
然后给成员变量赋值 name 与age有值之后输出的就是赋的值
方法执行完毕就会从栈内存消失
当执行到最后一步main方法就会从栈内存消失
方法是可以共用的 多个成员变量的值是不同的
3.成员变量和局部变量类中方法外的是成员变量
方法内的是局部变量
成员变量和局部变量的区别 :
类中位置不同
内存中的位置不同;成员变量在堆内存;局部变量在栈内存
成员变量随着对象的存在而存在 随着对象的消失而消失
局部变量随着方法的调用而存在方法的调用完毕而消失
成员变量在堆内存 都有默认的初始化值
局部变量在栈内存 必须先定义再赋值最后才能使用
4.封装 4.1 private关键字通过对象名直接访问成员变量的方式存在数据安全隐患
不让外界直接访问成员变量的值
这是一个权限修饰符
可以修饰成员 成员变量和成员方法
作用是保护成员变量不被其它类使用,被 private修饰的类只有在本类中才能访问
通过get/set可以对输入进行判断
4.2 private关键字的使用一个标准类的编写
把成员变量用private修饰
提供对应的getXxx()/setXxx()方法
使用get方法的好处 想要什么格式的都可以自己在测试类中拼接
show方法只会给出一种固定的格式
package mianxiang;
//学生测试类
public class kkkk {
public static void main(String[] args) {
//创建对象
oooo s =new oooo();
s.setName("林青霞");
s.setAge(20);
s.show();
//使用get方法获取成员变量
System.out.println(s.getName()+"---"+s.getAge());
}
}
package mianxiang;
public class oooo {
//成员变量
private String name;
private int age;
//get set
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
public void show(){
System.out.println(name+","+age);
}
}
4.3 this关键字
this修饰的name就是成员变量
假入没有this就是局部变量
this修饰的变量用于指代成员变量
方法的形参与变量同名,不带this的指的是形参
什么时候用this 解决局部变量和隐藏成员变量问题
this代表所在类的对象引用
4.4 this内存原理方法被哪个对象调用
那个方法里的this就代表那个对象
public void show(){
System.out.println(name+","+age);
}
}
### 4.3 this关键字 this修饰的name就是成员变量 假入没有this就是局部变量 this修饰的变量用于指代成员变量 方法的形参与变量同名,不带this的指的是形参 什么时候用this 解决局部变量和隐藏成员变量问题 this代表所在类的对象引用 ### 4.4 this内存原理 方法被哪个对象调用 那个方法里的this就代表那个对象暑期编程PK赛 得CSDN机械键盘等精美礼品!



