相信大家都多多少少的听说过面向对象与面向过程的概念吧,今天阿Q就带大家一起研究一下面向对象。首先给大家说一下概念吧。面向过程其实就是在编程过程中注重步骤性,它所关心的是事件;而面向对象其实是将你所看到的事物抽象成一个对象的过程,他注重的是事物本身,也就是对象。
a:是一种更符合我们思想习惯的思想
b:可以将复杂的事情简单化
c:将我们从执行者变成了指挥者,角色发生了转换
要学习对象,首先要理解好类,对象,属性,行为,成员变量,成员方法等几个概念。
写一个手机类 Phone ,属性:颜色 品牌 价格,行为:打电话 发短信 玩游戏
class Phone{
String brand;
int price;
public void call(){
System.out.println("call");
}
public void send(){
show();
System.out.println("faduanxin");
}
private void show(){
System.out.println("hehe");
}
}
class Demo_Phone {
public static void main(String[] args) {
//创建对象
Phone p = new Phone();
//调用对象中的属性并赋值
p.brand = "锤子";
p.price = 998;
System.out.println(p.brand + "..." + p.price);
//调用成员方法
p.call();
p.sendMessage();
p.playGame();
}
}
A:在创建某个类的对象的时候,先把类的字节码文件加载到方法区
B:创建对象的时候 一碰到new 就去堆内存开辟空间, 里面的成员变量 进行默认初始化
引用类型:null int : 0 double: 0.0 char: \u0000 boolean: false
C:如果main方法调用对象的一些属性进行赋值操作 ,那么就用刚被赋的值替换掉原来的初始值
D:如果在main方法中调用对象的方法,就直接从方法区里面把方法加载到栈内存中,进行执行,执行完了从栈内存消失
每new一次 就在堆内存中开辟一个新的空间
可以有多个引用同时指向同一个区域,那么这多个引用在进行操作的时候,都是操作的那个区域
class Person {
String name; //成员变量
int num;
public void speak() {
int num = 10; //x和num都是局部变量
System.out.println(name); //结果是:null
System.out.println(num); //结果是:10
System.out.println(this.num); //结果是:0
}
}
概念:没有名字的对象使用:
好了今天就先说到这了,明天继续。想了解更多学习知识,请关注微信公众号“阿Q说”,获取更多学习资料吧!你也可以后台留言说出你的疑惑,阿Q将会在后期的文章中为你解答。每天学习一点点,每天进步一点点。