java类 面向对象

类(引用数据类型)

1.Java为我们提供好的类,如Scanner类,Random类等,

2.自己创建的类,方法(函数,成员方法)

    属性(类里面的变量  进堆  成员变量(全局变量))

创建类

Car.java文件,与类名相同

public class Car {

String color="黑色";    // 成员变量     进堆

double price;

void run(String color) {  // color局部变量

int wheel=4;      // 局部变量     进栈

this.color=color;

System.out.println( "一辆"+color+"的车用"+wheel+"个车轮在跑" );

}

}

类的使用

导包:同文件夹下,可以避免导包

public class CarDemo {

public static void main(String[] args) {

Car c = new Car();   // 生成一个车对象

c.color = "red";

c.price = 150000;

c.run("红色");

}

}

面向对象

面向对象是把构成问题事务分解成各个对象,

通过对象描叙某个事物在整个解决问题的步骤中的行为。

类和对象的区别

类是对某一类事物的抽象描述,对象表示该类中的具体事物。

局部变量和成员变量区别

定义位置 方法             

存储位置 栈(变量)          堆(对象)

生命周期 方法弹栈消失     对象消失

初始化   手动赋值初始值   null  0

基本类型和引用类型作为参数传递

基本类型作为参数时,传递值给调用的方法,方法(局部)执行完变量值不变

引用变量作为参数时,传递地址给调用的方法,方法执行完变量值会变

封装(方法、类)

优点: 提高了代码的复用性,提高了安全性。

隐藏了实现细节,对外提供可以访问的接口。概念

class Person {

private int age;   // 私有成员变量

private String name;

public void setAge(int a){ if (a>0) {age = a; } } // 提供设置方法

public void getAge(){ return age; } // 提供访问方法

public void speak() {

this.name = "小强";  //  this.成员变量     this:本类对象

this.age = 18;

System.out.println("name=" + this.name + ",age=" + this.age);

}

public boolean equalsAge(Person p) {

return this.age == p.age; // this代表调用方法的对象

}

}

public class PersonDemo {

public static void main(String[] args) {

Person p = new Person();

p.setAge(30);

System.out.println("大家好,今年我" + p.getAge() + "");

}

}

继承

继承是指在一个现有类的基础上去构建一个新的类,

构建出来的新类被称作子类,现有类被称作父类,

子类会自动拥有父类所有可继承的属性和方法。

父类中的私有成员变量了,子类是不能直接访问的。

优点:

提高了代码的复用性,提高软件开发效率。

让类与类之间产生了关系,提供了多态的前提。

Java中,类只支持单继承,不允许多继承,

一个类只能有一个直接父类  // C类不可以同时继承A类和B

多个类可以继承一个父类    // B继承类A,类C继承类A

多层继承是可以的          // B继承类A,类C继承类B

  

重写(子类重写父类中成员方法)

子类方法 修饰符 权限 大于等于父类  public>不写(默认修饰符)>private

子类方法的返回值类型 方法名 参数列表都要和父类一样。

this.name                  this子类对象

super.name 父类属性/方法   super父类对象

调用方法 就近 子类找不到 再去父类找

封装:隐藏对象属性与方法的实现细节,对外提供一些公共的访问方式

继承:子类会自动拥有父类所有可继承的属性和方法。

多态:配合继承与方法重写提高了代码的复用性与扩展性

猜你喜欢

转载自www.cnblogs.com/javscr/p/10167767.html