欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > IT业 > java面向对象之类与对象

java面向对象之类与对象

2024/10/25 21:31:13 来源:https://blog.csdn.net/2301_76862031/article/details/142758286  浏览:    关键词: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}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com