Java课堂篇5_private、protected、(default)、public权限修饰符及一些细节、构造方法前加上private怎么创建对象、限制对象创建个数、main函数的参数理解、语法糖

本文详细解析了Java中的四种访问修饰符(private、protected、default、public),并介绍了如何利用private构造方法控制对象创建次数。同时,文章还涉及了main函数参数的应用及语法糖的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

  • private、protected、(default)、public权限修饰符及一些细节、

  • 构造方法前加上private怎么创建对象、

  • main函数的参数理解、

  • 语法糖


一、四种权限修饰符

Java中的访问修饰符分为:

  • 访问修饰符
  • 非访问修饰符

其中访问修饰符指的就是这四种:

  1. private
  2. protected
  3. (default)
  4. public

对于非访问修饰符:

  1. static 修饰符,用来修饰类方法和类变量。
    往期博客简单记录了static关键字和this关键字:Java课堂篇4_关键字this、static的理解

  2. final 修饰符,用来修饰类、方法和变量,final 修饰的类不能够被继承,修饰的方法不能被继承类重新定义,修饰的变量为常量,是不可修改的。

  3. abstract 修饰符,用来创建抽象类和抽象方法。

  4. synchronized 和 volatile 修饰符,主要用于线程的编程。

更多参考:菜鸟教程:Java修饰符

1.1什么是访问修饰符

访问权限修饰符,笼统的说可以修饰:

  • 成员变量
  • 成员方法

细说:

  • default (即默认,什么也不写): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。

  • private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)

  • public : 对所有类可见。使用对象:类、接口、变量、方法

  • protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)。

在这里插入图片描述

1.2访问修饰符的下访问权限

被访问修饰符修饰的类、成员变量、成员方法 会像 外界(其他的类)展示不同的控制权限(主要指访问)

其中对 于 外界,可以根据 类与类之间的关系、类与类之间的相对位置 可以分为:

  • 同一个包下的类
  • 同一个包下的存在继承关系
  • 不同包下的类但是类之间存在继承关系
  • 不同包下的类

在这里插入图片描述

在这里插入图片描述

这里说一下protected需要注意的地方:

在这里插入图片描述

二、构造方法前加private怎么创建对象及只限制一次对象的创建

package one.test;

public class A {
	public String name1 = "public";
	String name2 = "(default)";
	protected String name3 = "protected";
	private String name4 = "private";
	
	//计数对象的个数,必须是静态成员变量,要求只能创建一个对象
	private static  int count = 0;
	
	
	public String getName4() {
		return name4;
	}
	public void setName4(String name4) {
		this.name4 = name4;
	}
	
	
	
	private A() {
		super();
	}
	private  A(String name1, String name2, String name3, String name4) {
		super();
		this.name1 = name1;
		this.name2 = name2;
		this.name3 = name3;
		this.name4 = name4;
	}
	
	/**
	 * A类中的create可以访问private修饰的构造放方法
	 * 需要时静态方法
	 * @return
	 */
	static A create() {
		if(count == 0) {
			count++;
			return new A();
			
		}
		else {
			return null;
		}
	}
	

}

package one.test;


public class QuanXianXiuShiFu {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		
		//构造方法private修饰,不能直接创建对象
		//A a = new A();
		
		//需要在A类中创建一个create(),通过调用create()来创建
		A a = A.create();
		
		
		

	}

}

三、main函数的参数

Eclipse里面我们可以指定一个项目中的主main()函数

在这里插入图片描述
可以给main()函数设置参数,对应的是String[] args字符串数组 ,然后在函数中遍历参数字符串

在这里插入图片描述
在这里插入图片描述

四、语法糖

语法糖就是对于某些代码的书写,我们按照某些特定的规则可以简写,编译器编译执行的时候会自动帮我们完成补全

顾名思义写简便的代码感觉像吃糖一样~

下面举栗的是一种函数 对于 不确定个数 的可变参数 一种语法糖形式的处理,有点类似js里面的内置数组

在这里插入图片描述

需要注意的是,对于不同类型的多个参数,可省参数的位置 必须 在后,例如上例,y写在后面就会报错

当然,语法糖现象不止此一种,在Lambda表达式中也会体现


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

scl、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值