首页 > 其他分享 >private私有化,this,构造方法

private私有化,this,构造方法

时间:2024-09-25 12:02:14浏览次数:1  
标签:String 构造方法 void 私有化 private age public name

  • 关键字 private

        * java提供一个关键字给我们使用:private 私有的
        可以修饰成员变量,成员方法,构造方法
        在同一个类中,private关键字不起作用,相当于透明的,同一个类中被private关键字修饰的成员可以随意访问
    
  • 标准写法

  •    标准写法1.0
       成员变量:使用private关键字修饰
       成员方法:针对每一个成员变量提供对应公共的setXxx()和getXxx()
       自动生成get和set方法alt + inser
    
  •  一个标准类的写法2.0版本
      成员变量:使用private关键字修饰
      成员方法:针对每一个成员变量都提供getXxx()和setXxx(),其中参数需要见明知意,需要使用this关键字辅助
      show()方法:展示当前对象的所有成员变量值
    
  •   一个标准类3.0写法
      成员变量:私有化
      构造方法:一个无参,一个所有参数
      成员方法:setXxx()和getXxx()
      show方法:展示对象所有成员变量值
    
  • 关键字 this

    * java提供一个关键字:this
     this代表的是调用该方法的当前对象【谁调用了该方法,this就代表那个对象】
    
  • 构造方法

      * jvm在编译一个类的时候,若该类没有自己编写的构造方法的话,会默认提供一个无参,空方法体的构造方法
       若我们自己提供了构造方法【无论是有参还是无参】,jvm都不会再提供了。
       构造方法也可以发生重载【在同一个类中,构造方法可以有多个】
    
匿名对象,指的是没有名字的对象,只能用一次,后续无法继续使用该对象 点击查看代码
//定义一个教师类
class Teacher {
    public void fun2(){
        System.out.println("好好学习,天天向上!");
    }
}

class Demo2{
    //当你今后看到一个类作为方法的参数的时候,将来调用时需要传入该类的对象【或者该类的子类对象】
    public void method(Teacher t){ //Teacher t = new Teacher()
        t.fun2();
    }
}

public class TeacherDemo1 {
    public static void main(String[] args) {
        Demo2 d1 = new Demo2();
//        Teacher t1 = new Teacher();
        d1.method(new Teacher()); // new Teacher()

        //匿名对象,指的是没有名字的对象,只能用一次,后续无法继续使用该对象
//        d1.method(new Teacher());
    }
}

  • private关键字
    可以修饰成员变量,成员方法,构造方法
    在同一个类中,private关键字不起作用,相当于透明的,同一个类中被private关键字修饰的成员可以随意访问
    在其他类里我们需要通过get函数获取,通过set函数赋值,后期直接通过构造方法进行对参数的赋值,如果有另外的要求需要
    更改set函数
class Person {
    private String name;
    private int age;

    public String getName(){
        return name;
    }

    public void setName(String n){
        name = n;
    }

    public int getAge(){
        return age;
    }

    public void setAge(int i) {
        if (i > 0 && i <= 130) {
            this.age = i;
        }else {
            System.out.println("输入的年龄不合实际!");
        }
    }

    private void fun1(){
        System.out.println("好好学习,天天向上!");
    }

    public void show1(){
        fun1();
    }
}

public class PersonDemo {
    public static void main(String[] args) {
        //创建一个Person类的对象
        Person p1 = new Person();
//        System.out.println("姓名:" + p1.name);
//        System.out.println("年龄:" + p1.age);
        System.out.println("姓名:" + p1.getName());
        System.out.println("年龄:" + p1.getAge());
        System.out.println("-------------------------");
//        p1.name = "江川";
//        p1.age = 1800;
        p1.setAge(1800);
        p1.setName("江川");
//        System.out.println("姓名:" + p1.name);
//        System.out.println("年龄:" + p1.age);
        System.out.println("姓名:" + p1.getName());
        System.out.println("年龄:" + p1.getAge());
        System.out.println("------------------------");
//        p1.fun1();
        p1.show1();
    }
}
  • 关键字:this

    变量查找规则:就近原则
    先在方法中查找变量,若找到就使用
    若方法中没有该变量,去成员变量的位置上查找
    如果没有this关键字,则无法调用set函数里的参数

public class Student {
    // 成员变量
    private String id;
//    private String name;
//    private int age;

    //变量查找规则:就近原则
    //先在方法中查找变量,若找到就使用
    //若方法中没有该变量,去成员变量的位置上查找    
public void setId(String id){
//        id = id;
        //我们的本意是将传进来的id赋值给成员变量的id
        //java提供一个关键字:this
        //this代表的是调用该方法的当前对象【谁调用了该方法,this就代表那个对象】
        this.id = id;
    }

    public String getId(){
        return id;
    }

    //自动生成get和set方法alt + insert

}

class Demo1{
    public static void main(String[] args) {
        //创建一个学生对象
       Student s1 = new Student();

        System.out.println("学号:"+s1.getId());
        s1.setId("sj1001");
        System.out.println("学号:"+s1.getId());
    }
}
  • 标准写法1.0代码演示
class Person {
    private String name;
    private int age;

    public String getName(){
        return name;
    }

    public void setName(String n){
        name = n;
    }

    public int getAge(){
        return age;
    }

    public void setAge(int i) {
        if (i > 0 && i <= 130) {
            age = i;
        }else {
            System.out.println("输入的年龄不合实际!");
        }
    }

    private void fun1(){
        System.out.println("好好学习,天天向上!");
    }

    public void show1(){
        fun1();
    }
}

public class PersonDemo {
    public static void main(String[] args) {
        //创建一个Person类的对象
        Person p1 = new Person();
//        System.out.println("姓名:" + p1.name);
//        System.out.println("年龄:" + p1.age);
//因为是该类私有的无法直接调用,需要通过getname()方法来调用,
//且构造方法是无参的,默认姓名为null,age为0
        System.out.println("姓名:" + p1.getName());
        System.out.println("年龄:" + p1.getAge());
        System.out.println("-------------------------");
//        p1.name = "江川";
//        p1.age = 1800;
//setName的作用是赋值后期可直接通过含参的构造方法进行赋值
        p1.setAge(1800);
        p1.setName("江川");

        System.out.println("姓名:" + p1.getName());
        System.out.println("年龄:" + p1.getAge());
        System.out.println("------------------------");
//        p1.fun1();
//无法访问,因为 这个方法是私有的
//但是我们可以通过媒介show1()方法来调用
        p1.show1();

  • 标准写法2.0演示
public class Student2 {
    private String name;
    private int age;
    private String gender;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public void show() {
        System.out.println("姓名:" + this.name + ", 年龄:" + this.age + ", 性别:" + this.gender);
    }
}

class Demo02{
    public static void main(String[] args) {
        Student2 s1 = new Student2();

        s1.setName("江川");
        s1.setAge(18);
        s1.setGender("男");
        s1.show();
    }
}
  • 标准写法3.0演示
public class Student4 {
    private String id;
    private String name;
    private int age;

    Student4(){

    }

    Student4(String id,String name,int age){
        this.id = id;
        this.name = name;
        this.age = age;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public void show() {
        System.out.println("学号:" + id + ", 姓名:" + name + ", 年龄:" + age);
    }
}

class Demo4 {
    public static void main(String[] args) {
        //通过无参的构造方法创建对象,使用setXxx对成员变量赋值
//        Student4 s1 = new Student4();
//        s1.setName("江川");
//        s1.setId("1001");
//        s1.setAge(18);
//        s1.show();

        //直接通过有参的构造方法对成员变量进行赋值
        Student4 s2 = new Student4("1002","江川",19);
        s2.show();


    }
}

构造方法

public class Student3 {
    Student3(){
        System.out.println("这是无参的构造方法");
    }

    Student3(String s) {
        System.out.println("这是有参的构造方法:" + s);
    }
}

class Demo3 {
    public static void main(String[] args) {
        Student3 s = new Student3("数加科技");
        Student3 s2 = new Student3();

    }
}

标签:String,构造方法,void,私有化,private,age,public,name
From: https://www.cnblogs.com/wangxiaojian-lina/p/18431047

相关文章

  • java_day6_this关键字、构造方法、static关键字、工具类、文档注释
    一、this关键字this代表的是调用该方法的当前对象【谁调用了该方法,this就代表那个对象】this:代表的是调用当前方法的对象this可以使用对象中的成员变量,成员方法,构造方法变量查找规则:就近原则先在方法中查找变量,若找到就使用若方法中没有该变量,去成......
  • java_day5_面向对象、private关键字
    一、面向对象面向对象与面向过程的区别?面向过程的思想:代表语言C语言功能开发中的每一步都是自己参与的面向对象的思想:代表语言java语言指的是不断地创建对象,指挥对象事情过程面向对象的思想:1、都有那些事物?判断事物的方式:......
  • 华为Flexus云服务器搭建OnlyOffice私有化在线办公套件
    一、引言在当今数字化办公的时代,在线办公套件的需求日益增长。华为Flexus云服务器凭借其强大的性能和稳定性,为搭建OnlyOffice私有化在线办公套件提供了理想的平台。在2024年9月14日这个充满探索精神的日子里,我们开启利用华为Flexus云服务器搭建OnlyOffice的旅程。二、华为Flexus云......
  • java中的构造方法
    //1.使用面向对象的思想,编写自定义描述狗的信息。设定属性包括:品种,年龄,心情,名字;//1)设置构造函数实现对属性赋值构造方法的作用:1.可以用来创建对象2.可以用来给对象赋值注意事项:一般来说,如果我们创建了一个有参的构造参数,同时也要创建一个无参的构造参数classDog{......
  • git服务器私有化部署产品
    私有化部署的Git服务器产品有很多,以下是一些常见的选择:GitLab:GitLab是一个非常流行的开源代码托管平台,提供私有仓库、CI/CD工具、项目管理等功能。它可以被安装和部署在你自己的服务器上。GitHubEnterprise:GitHub提供的企业版服务,允许你在自己的数据中心或云环境中运行GitHub的......
  • Halo 开发者指南——容器私有化部署
    华为云SWR私有化部署镜像构建dockerbuild-thalo-dev/halo:2.20.0.上传镜像镜像标签sudodockertag{镜像名称}:{版本名称}swr.cn-south-1.myhuaweicloud.com/{组织名称}/{镜像名称}:{版本名称}sudodockertaghalo-dev/halo:2.20.0swr.cn-south-1.myhuaweicloud.c......
  • typescript 中的private是什么,你记住了吗?
    在TypeScript中,private关键字用于声明类的成员(属性或方法)为私有的。这意味着这些成员只能在类的内部被访问和修改,而不能在类的外部通过类的实例直接访问。这是面向对象编程(OOP)中封装原则的一个体现,有助于隐藏类的内部实现细节,只暴露必要的接口给外部使用。私有属性私有属性是类的内......
  • 局域网聊天工具:提升企业内部信息安全的私有化即时通讯软件
    在数字化转型的过程中,越来越多的企业依赖即时通讯工具来进行内部沟通与协作。然而,许多企业在使用的微信、钉钉等SaaS聊天工具却存在着严重的安全隐患和管理难题,这些问题不仅危及信息安全,还影响企业的整体运营效率。针对这些痛点,选择一款私有化部署的局域网聊天工具成为了企业的当务......
  • Azure web app has no access to openai private endpoint in virtual network
    题意:"AzureWeb应用无法访问虚拟网络中的OpenAI私有端点。"问题背景:IamtryingtohostawebapplicationsimilartoaprivateChatGPTinstancewithinasecludedvirtualnetwork,ensuringthatthere'snoexternalinternetaccess."我正在尝试在一个隔离的......
  • 在私有化过程中不要忽视LLMs的双重逻辑能力:医学领域的数据密集型分析
    链接:https://arxiv.org/abs/2309.04198原标题:Don’tIgnoreDualLogicAbilityofLLMswhilePrivatizing:AData-IntensiveAnalysisinMedicalDomain日期:Submittedon8Sep2023摘要大量的研究致力于通过喂养特定领域的数据,将通用领域的LargeLanguageModels......