面向对象基础

来源:互联网 发布:高德api js定位好慢 编辑:程序博客网 时间:2024/06/05 19:55

构造方法
定义:方法名与类名相同,并且无返回值类型。
1. 系统会自动为没有构造方法的类创建一个无参的构造方法。
2. 只要有了任意的构造方法,系统就不会在创建默认无参构造方法。
3. 构造方法只能在new的时候调用,其他时候不允许调用。
构造方法就是用来初始化对象。


this关键字
this代表当前类的实例,调用该方法或者该成员变量的对象。
this是被省略的,无论写不写,所有的成员变量和成员方法调用时都默认的加上this关键字。
this三大用处
1. 区分成员变量和局部变量
2. 调用其他方法和属性
3. 调用其他构造方法 this([args…]); 必须要放在构造方法的第一行。不允许相互调用


参考代码1
ublic class User {

int age;String username="匿名";// 没有任何构造方法的时候  // 系统会自动给你创建一个默认的无参的构造方法// 如果由了任何的构造方法,系统都不会在创建默认的无参构造方法public User(int iAge, String sUsername) {    // 系统默认生成的无参构造方法    age = iAge;    username = sUsername;}public User() {    age = 0;    username = "匿名";}public User(int iAge) {    age = iAge;    username = "匿名";}public void init() {}public void setData(int iAge) {    age = iAge;}

}

package com.xykj;

public class Test {

public static void main(String[] args) {    User user = new User();// 调用User类的构造方法    System.out.println(user.age + "   " + user.username);}

}
参考代码2
package com.xykj2;

public class Car {

String color;int speed;String brand;public Car() {    this.color = "黑色";    speed = 100;}public Car(int speed) {    // 调用其他构造方法 必须放在第一行    this();    this.speed = speed;}public Car(String brand, int speed) {    this(speed);    this.brand = brand;}// 构造方法中 不允许来回调用// public Car(String a) {// this("",1.0);// }//// public Car(String b, double a) {// this("a");// }

}
package com.xykj2;
public class Test {
public static void main(String[] args) {
// User user = new User(10);
// User user2 = new User(15);
// User user3 = new User(20);
// System.out.println(user.age + ” ” + user2.age);

    Car car = new Car();    System.out.println(car.color + "  " + car.speed);    Car car2 = new Car(120);    System.out.println(car2.color + "   " + car2.speed);    Car car3 = new Car("宝马", 240);    System.out.println(car3.brand + "  " + car3.color + "  " + car3.speed);    Person p = new Person("zhangsan", 100);}

}


方法重载
方法名必须相同,方法参数不同(长度不同,类型不同),和方法权限,返回值无关。
1. public int max(int a,int b)
2. {
3. return a>b?a:b;
4. }
5. //普通方法重载,方法名相同,参数类型或参数列表长度不同
6. public long max(long a,long b)
7. {
8. return a>b?a:b;
9. }
10 构造方法的重载
private String name;
private String password;
//当初始化有多种情况发生时,我们经常需要去重载构造方法
public Example(String name) {
this.name = name;
}
public Example(String name, String passwrod) {
this.name = name;

final关键字
Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰飞抽象类,非抽象类成员方法和变量。

 - final类不能被继承,没有子类,final类中的方法默认是final的 - final方法不能被子类的方法覆盖,但可以被继承 - final 去修饰变量,就是常量,只有第一次可以赋值,以后不能在赋值。 - 修饰基本数据类型,不能在改变值,修饰引用数据类型,地址不允许在改变。 - final修饰的所有的变量,命名规范都所有字母需要大写 - final不能用于修饰构造方法。 **static关键字** static是Java中的静态修饰符,可以用来修饰成员变量,成员方法和代码块,他修饰的特点如下        - 静态方法和静态变量是属于某一个类,而不属于类的对象。        - 静态方法和静态变量的引用直接通过类名的引用        - 在景泰方法中不能调用非静态的方法和引用非静态的成员变量。反之,则可以。        - 静态变量在某种程度上与其他语言的全局变量相类似,如果不是私有的就可以在类的外部进行访问。

1.修饰变量:
类的所有对象共同拥有的一个属性,也称为类的变量。类变量在类加载的时候初始化,而且只被初始化一次。在程序中任何对象对静态变量做修改,其他对象看到的是修改后的值,static变量可以用类名直接访问,而不必需要对象。
2.修饰方法:
类的所有对象共同拥有的一个功能,称为静态方法。 静态方法也可以用类名直接访问,而不必须要对象。所以在静态方法里不能直接访问非静态变量和非静态方法。在static方法里不能出现this或者super等关键字。
3.修饰代码块:
用static去修饰类里的一个独立的代码块,称为静态代码块。静态代码块在类第一次被夹在的时候执行,而且只执行一次能够。静态代码块没有名字,因此不能显示调用,而只有在类加载的时候有虚拟机来调用。它主要用来完成一些初始化操作。
利用静态代码块可以对一些static变量进行赋值。

原创粉丝点击