面向对象基础

构造方法
定义:方法名与类名相同,并且无返回值类型。
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变量进行赋值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
面向对象是一种编程思想,通过这种思想可以将复杂的事物简化。它基于面向过程,强调结果而不是过程。面向对象的编程中,类是将具有相似行为或属性的事物抽象或集合而成的。对象是类的具体实例,是类的模板。在Java语言中,可以通过类来描述现实世界的事物,将事物的属性作为成员变量,将行为作为成员方法。类和对象的创建与使用可以通过class关键字创建类,通过new关键字创建对象。类与对象在内存中的存储通过引用来实现。 Java面向对象基础知识还包括封装、构造方法、构造代码块、局部代码块、this关键字、继承、static关键字、多态、抽象类、接口等。封装是面向对象的三大特征之一,可以用来保护类的成员变量。构造方法用于创建对象的同时初始化对象的成员变量。构造代码块在创建对象时执行,并且在构造方法之前执行。局部代码块是在方法内部定义的代码块。this关键字指代当前对象。继承是面向对象的重要特性,可以通过父类和子类之间的关系实现代码的复用。static关键字用于修饰成员变量和成员方法,可以实现数据的共享。多态是指一个对象可以有多种形态,能够根据上下文自动选择使用哪种形态。抽象类和接口是抽象类型的具体表现,可以提高程序的复用率和可维护性。 在Java中,由于不允许多重继承,如果要实现多个类的功能,则可以通过实现多个接口来实现。面向接口和面向抽象类的编程是提高程序复用率和可维护性的重要手段。正确地使用接口和抽象类是面向对象编程的关键。 总结一下,Java面向对象基础知识包括类与对象、封装、构造方法、构造代码块、局部代码块、this关键字、继承、static关键字、多态、抽象类、接口等概念和特性。掌握这些知识可以帮助我们更好地进行面向对象的编程。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值