类和对象(Java)学习总结

每天努力一点点
-Make a little progress every day

前言

随着时代的发展编程语言也在进步,Java语言更是成为当今时代潮流,本文简述了阿杰对Java语言的初步认识,并记录阿杰初次进行Java入门学习的部分重要基础内容;

一、什么是面向对象、类

面向对像: 是用代码来描述客观世界事务的一种方式;
**类:**一类对象的统称,对象就是这一类具体化的一个实例;
面向对象设计
开发时:找对象,用对象,用对象,并维护对象之间的关系;
面向对象设计的好处
将复杂的事情变简单了,只需要面向一个对象就行;

二、类和类的实例化

基本语法格式

//创建一个类
class 类的名字{
filed;//成员属性
method;//成员方法

}
类名 对象名 = new 类名();

类在Java中属于引用类型,一个类可以产生无数对象;

  • new关键字用于创建一个关键字实例;
  • 使用 . 来访问对象中的属性和方法;

三、类的成员

类的成员可以包括:字段,方法,代码块,内部类和接口等;

3.1 字段/属性/成员变量

class Person{
public String namme  //字段
public int age
}
  • 使用 . 访问对象的字段;
  • 访问包含读也包含写;
  • 对于一个对象如果没有显示设置初始值,那么会被设置一个默认的初始值;
    引用类型都为null, 基本类型除了boolean都为0, boolean初始值为false
  • null表是不引用任何对象;对null进行 . 就会引发空指针异常;

3.2 方法

普通方法:用于描述一个对象的行为;
构造方法:在实例化对象的时候会被自动调用的方法;

class Node{
	public int val;
	public Node next;
	public Node (int val){//构造方法
	this.val = val;} 
}

3.3 static 关键字

  • 修饰属性
    同一个类不同实例共用一个静态属性;

  • 修饰方法
    静态方法属于类而不属于对象;
    可直接调用静态方法无需创建实例;
    静态方法可以访问静态数据成员,并可以更改静态数据成员的值;

总结:
static 定义的变量是实例变量;
static方法不依赖于对象,对静态方法来说没有this ;
静态成员变量或成员方法在方法区,都要通过类名来直接调用;
静态方法内部不能调用非静态方法;
父子类中的静态方法总是被先执行,而且只执行一次;

四、封装

4.1 private实现封装

  • 被public修饰的成员方法或成员变量可以直接被调用者使用;
  • 被private修饰的成员变量或者成员方法。不能被类的调用者使用;

4.2 getter和setter方法

当用private来修饰字段就无法直接使用这个字段了,这时如果需要获取或者修改private就要使用getter/setter方法;
示例:

class Person{
    private String name;//实例成员变量
    private int age;
    public void setName(String name){
        this.name = name;
    }
    public String getName(){
        return name;
    }
    public void show(){
        System.out.println("name:"+name+" "+"age:"+age);
    }
}
public class text{
	public static void main(String[] args){
        //Person
        Person person = new Person();
        person.setName("yujie");
        String name = person.getName();
        System.out.println(name);
        person.show();
    }
}

set设置成员值;
get获成员值;

IDEA有快速生成setter , getter的方法:
alt+insert 或alt +f12 快速生成;

五、构造方法

5.1 基本语法

new的执行:
为对象分配内存空间,调用对象的构造方法;
语法规则:

  • 方法名与类名相同;
  • 构造方法没有返回值类型声明;
  • 每一个类中至少存在一种构造方法,如果没有明确定义则系统自动生成一个无参构造;

5.2 this关键字

  • this表示对当前对象的引用;
  • 静态方法内部不能用this调用;
  • this()调用构造函数必须放在第一行;

六、代码块

代码块的执行顺序:

  1. 静态代码块;
  2. 实例代码块;
  3. 构造带码块;
    注意
    静态代码块不管生成了多少个对象只会执行一次,且是最先执行的;

七、补充

  • toString方法会在println时自动调用;
  • IDEA快速生成Object的toString方法alt+f12;
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值