1, 标题面向对象概述
面向对象是一种符合人们思维的编程方式。在程序中使用对象来映射现实中的事物,使用对象的关系来描述事物之间的联系,这种思想就是面向对象。面向对象的特性分为三种,如封装,继承,多态。
封装就是将一个对象的属性和方法放进盒子里,不让外界知道具体细节,也就是说不允许外部类随意进行访问。
继承就是类与类之间的一种关系,通过继承,可以在无需编写原有类的基础上,在现有类的基础上对原有类的功能进行扩展,提高了代码的复用性,并提高了开发的效率。
多态是在继承的基础上,不同的对象对同一个方法调用,产生不同结果的这么一个事情。
这三个特性这么一小行文字也不会让我对面向对象有什么很深的理解,还是要在使用的时候多去理解,多去体会。
2,成员变量与局部变量
定义在类中的变量被叫做成员变量,定义在方法中的变量叫做局部变量,一个类中成员变量和局部变量可以是相同的,通过方法名只能访问到局部变量而不是成员变量。
package com.xiao;
class P {
int age = 10;//成员变量
void speak() {
int age = 30;//局部变量
System.out.println("我今年" + age + "岁了");
}
}
public class Person_one {
public static void main(String[] args) {
P p=new P();
p.speak();
}
}
3, 对象的创建与使用,
Person p = new Person();
这样就创建了一个p对象,Person p是声明了一个Person类型的变量p,
new Person()用于创建一个Person类的实例对象,中间的等号是Person对象在内存中的地址赋值给变量p,Person p是放在栈内存里,new Person()是存放在堆内存里。
内存分为两种,一种是栈内存,一种是堆内存,栈内存用于存放一些引用变量,如Person p,堆内存用于存放由new创建的对象和数组。
4,访问控制符
由小到大
private(当前类),default(包),protect(子类),public(公共)
5,类的封装
不封装会产生什么影响
package com.xiao;
class Person_zeo{
String name;
int age;
public void speak(){
System.out.println("我叫"+name+",今年"+age+"岁了");
}
}
public class Example03 {
public static void main(String[] args) {
Person_zeo p = new Person_zeo();
p.name="张三";
p.age=-18;
p.speak();
}
}
可以得出年龄为-18岁,语法上不会报错但是实际中这是不合理的,这就需要类的封装了
package com.xiao;
class Person2 {
private String name;
private int age;
public String getName(){
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}