java面向对象之类与对象

目录

1.定义一个类

案例:定义一个学生类

1.代码

2.效果

2.类的实例化与使用

1.代码

2.效果

3.访问控制

1)private

2)default

3)protected

4)public

注:如下图

4.封装一个类

案例:封装一个教师类

1)代码

2)效果

5.定义一个构造方法

1)无参数构造

2)有参数构造

3)注

6.构造方法的重载

案例:快速生成java的构造方法和get,set方法

步骤如下

1)创建一个类编写里面私有属性

2.alt键+insert键

3.全参数构造

4.无参数构造

5.生成get和set方法

7.static关键字

1. 静态变量

2. 静态方法

3. 静态初始化块


1.定义一个类

访问修饰符   class 类的名字{

        属性1;

        属性2;

        方法1;

        方法2;

}

案例:定义一个学生类

public class Student {

    String name;

    int age;
    
    public void study(){
        System.out.println("study");
    }
    public void sleep(){
        System.out.println("sleep");
    }
}

1.代码

package org.xiji.object;

public class Student {
    String name;
    int age;
    
    public void study(){
        System.out.println("study");
    }
    public void sleep(){
        System.out.println("sleep");
    }
}

2.效果

2.类的实例化与使用

类名   变量名  =  new  类名();

//调用属性

变量名.属性

//调用方法

变量名.方法名()

创建一个测试类==》使用类

1.代码

package org.xiji.object;

public class StudentTest {
    public static void main(String[] args)
    {
        //创建一个类
        Student stu = new Student();
        //赋值
        stu.name = "惜.己";
        stu.age = 18;
        //输出
        System.out.println(stu.name);
        System.out.println(stu.age);
        //调用方法
        stu.sleep();
        stu.study();
    }
}

2.效果

3.访问控制

1)private

  1. private:

    • 如果一个成员被声明为 private,那么它只能在其所属的类中被访问。
    • 这种级别的限制意味着这个成员不能被任何其他类(包括子类)所访问
    • private 通常用来隐藏数据,确保封装性
    • 修饰属性和方法


2)default

  1. default (也称为包私有或不使用任何关键字):

    • 当没有指定任何访问修饰符时,默认使用的就是这种访问级别。
    • 默认访问权限下,该成员可以在同一个包内的所有类中被访问
    • 不同包中的类无法访问具有默认访问权限的成员,即使它们是子类也不行。

3)protected

  1. protected:

    • protected 访问修饰符使得成员可以被同一包内的所有类访问,并且也可以被不同包中的子类访问
    • 这提供了比 default 更宽松但比 public 更严格的访问控制。
    • 它允许一定程度的继承性和封装性的结合。

4)public

  1. public:

    • 被声明为 public 的成员可以从任何其他类中被访问,无论这些类位于哪个包内
    • public 提供了最宽泛的访问权限,因此应当谨慎使用,仅当确实需要广泛的可访问性时才应该选择这种修饰符。

注:如下图

base 是一个包  ,object又是一个包.

被default修饰的类访问的范围只在本包

被public修饰的类访问的范围任意包

4.封装一个类

通过private修饰属性,隐藏属性。并且通过public修饰的方法使用this访问本类的私有属性

public class MyPrivate{

        private  数据类型1   数据名1

        private  数据类型2   数据名1

        

        //通过公共方法访问

        public 数据类型1  方法名1(){

                return this.数据名1;

        }

        //通过公共方法访问

        public 数据类型2  方法名2(){

                return this.数据名1;

        }

}

案例:封装一个教师类

1)代码

package org.xiji.object;

public class Teacher {
    
    private String name;
    private int age;
    
    
    public String sleep()
    {
        System.out.println(this.name+"老师睡觉");
        return this.name;
    }
    public int say()
    {
        System.out.println("年龄是:"+this.age);
        return this.age;
    }
}

2)效果

5.定义一个构造方法

1)无参数构造

        无参数构造函数用于创建对象时不需要传递任何参数的情况。如果在一个类中没有显式地定义任何构造函数,那么Java会自动提供一个默认的无参数构造函数。但是,一旦你在类中定义了至少一个构造函数(无论是否有参数),Java就不会再自动生成这个默认构造函数了。

public class MyTwo{

        String name;

       //无参数构造

        MyTwo(){

        

        }

        

        

}

2)有参数构造

        有参数构造函数允许在创建对象的同时传入一些初始数据。这对于给对象的状态变量赋初值非常有用。

public class MyTwo{

        String name;

        //有参数构造

        MyTwo(String name){

               this.name = name;

        }

        

}

3)注

无论是有参数还是无参数构造方法名必须和类名一致

6.构造方法的重载

        构造方法的重载是指在一个类中定义多个构造方法,这些构造方法具有相同的名称(即类名),但参数列表不同。这样可以根据不同的初始化需求来创建对象。构造方法重载允许你在创建对象时提供灵活的初始化方式。

在Java中,可以通过以下几种方式实现构造方法的重载:

  1. 不同的参数数量:构造方法可以有不同的参数数量。
  2. 不同的参数类型:即使参数数量相同,只要参数类型不同,也可以构成重载。
  3. 不同的参数顺序:如果参数的数量和类型都相同,但参数的顺序不同,这也可以构成重载。
package org.xiji.object;

public class MyTwo {
    
    String name;

    //无参数构造
    public MyTwo() {
    }

    //有参数构造
    public MyTwo(String name) {
        this.name = name;
    }
}

案例:快速生成java的构造方法和get,set方法

步骤如下

1)创建一个类编写里面私有属性

2.alt键+insert键

3.全参数构造

4.无参数构造

如下图操作

5.生成get和set方法

可以看到已经生成了

7.static关键字

1. 静态变量

        静态变量也称为类变量,它们是所有对象共享的数据成员。一旦值被改变,所有引用这个静态变量的地方都会看到这个改变。

public class Example {
    public static int count = 0; // 静态变量

    public Example() {
        count++; // 每次创建一个新的Example对象时,count加1
    }

    public static void main(String[] args) {
        new Example();
        new Example();
        System.out.println(Example.count); // 输出: 2
    }
}

2. 静态方法

静态方法也称为类方法,它们可以通过类名直接调用,而不需要创建类的实例。静态方法通常用来执行与类相关但不依赖于特定实例的操作。

public class MathUtils {
    // 静态方法
    public static int max(int a, int b) {
        return (a > b) ? a : b;
    }

    public static void main(String[] args) {
        int result = MathUtils.max(10, 20); // 直接通过类名调用静态方法
        System.out.println("Max is: " + result); // 输出: Max is: 20
    }
}

3. 静态初始化块

静态初始化块是在类加载时执行一次的代码块,用于对静态变量进行初始化操作。

public class StaticInitializer {
    public static int value;

    static { // 静态初始化块
        value = 42;
        System.out.println("Static block initialized.");
    }

    public static void main(String[] args) {
        System.out.println(StaticInitializer.value); // 输出: 42
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值