Java三大特性之封装

1.成员变量和局部变量

1.1什么是成员/局部变量:根据变量定义位置的不同,我们给变量分为成员变量和局部变量两种
成员变量定义再类中方法外,局部变量定义在方法内部或者方法的括号内
例如:public class Test01 {
int a;//成员变量,属于对象的
public void print(){
int b;//局部变量,方法的内部使用
}
}
1.2成员和局部变量的区别:
2.1位置:成员变量在类中,方法外,局部变量在方法中或者方法括号内 (形式参数)
2.2作用范围:成员变量类中都能使用;局部变量只能在该方法中使用
2.3初始值:成员变量根据变量的类型不同有不同的默认值;局部变量没有默认值必须先赋值再使用
基本数据类型 整数(byte,short,int,long) 0
浮点型(float,double) 0.0
字符型(char) ’\u0000’
布尔型(boolean) false
引用类型 数组,类,接口,String null
2.4在内存中的位置:局部变量在栈中,随着方法的调用入栈而变量存在,随着方法的调用结束而销毁
成员变量在堆中,属于对象的,随着对象的创建而存在,对着对象被垃圾回收而消失

2.封装

2.0概述:封装就是将成员变量加以限制,防止该类的
数据被其他类随意访问和修改,若要访问该类的数据, 必须通过指定的方法.
2.1封装的步骤:
(1)给每一个成员变量前面添加private关键字使其私有化,进而不让其他类访问到
被private修饰的成员变量只能在当前类中访问和修改
(2)通过一个专门的setXxx方法去给属性赋值;一个专门的get方法获取值
(3)通过this关键字完善封装,
认识this:指代当前对象
2.1关键字
2.1.1private关键字:访问修饰符,可以将成员变量进行私有化,从而限制其他类访问
2.1.2this关键字
public class TestThis {
String name;//“张三”

		//局部变量满足就近原则,this关键字
		public void say(String name){
			System.out.println(this.name+"你好,我是"+name);
							  //王思聪          王健林
		}

		public static void main(String[] args) {
			TestThis zhangsan = new TestThis();
			zhangsan.name = "张三";
			zhangsan.say("张三他爹");

			TestThis wsc = new TestThis();
			wsc.name = "王思聪";
			wsc.say("王健林");
		}
	}

3.构造方法

3.1概述:构造方法就是构建对象的方法,若没有构造方法就不能创建对象
说白了就是不能new,例如:Student s = new Student();
3.2特点:1.构造方法默认存在,只要创建了类就存在
2.没有返回值,连void关键字都没有
3.方法名和类名完全一致
4.在创建对象的时候自动被调用
5.可以重载
6.我们将封装好的类:包含有private set get 无参构造 有参构造 称为javabean
package sk2;
//练习:创建一个类Student,属性 stuNo name age sex address
// 封装属性,自定义一个show方法显示个人信息
// 创建对象调用set方法赋值,调用show显示个人信息 javabean
public class Student {
private int stuNo;
private String name;
private int age;
private char sex;
private String address;
public Student(){}
public Student(int stuNo,String name,int age,char sex,String address){
this.stuNo = stuNo;
this.name = name;
this.age = age;
this.sex = sex;
this.address = address;
}
//stuNo
public void setStuNo(int stuNo){
this.stuNo = stuNo;
}
public int getStuNo(){
return stuNo;
}
//name
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
//age
public void setAge(int age){
this.age = age;
}
public int getAge(){
return age;
}
//sex
public void setSex(char sex){
this.sex = sex;
}
public char getSex(){
return sex;
}
//address
public void setAddress(String address){
this.address = address;
}
public String getAddress(){
return address;
}
public void show(){
System.out.println(stuNo+“:”+name+“:”+age+“:”+sex+“:”+address);
}
}
package sk2;

public class TestStudent {
public static void main(String[] args) {
Student zhangsan = new Student();
zhangsan.setName(“张三”);
zhangsan.setAge(18);
zhangsan.setSex(‘男’);
zhangsan.setStuNo(02);
zhangsan.setAddress(“湖北武汉”);
zhangsan.show();

    Student lisi = new Student(03,"lisi",18,'男',"SK");
    lisi.show();
}

}

4.可变形参数作用是什么,

4.1概述:就是定义一个方法,方法的括号里面的参数是不确定的
//练习:让用户随意输入不确定数量的整数,定义方法找到其中的最大数,最小数
public class Test01 {
public static void main(String[] args) {
test(1,2,4,23,123,5,2,31,2,41,14);
}
public static void test(int… a){
int max = 0;
int min = 1000000;
for(int i=0;i<a.length;i++){
if(a[i]>max){
max = a[i];
}
if(a[i]<min){
min = a[i];
}
}
System.out.println(“最大数:”+max);
System.out.println(“最小数:”+min);
}
}

5.java的访问权限修饰符有哪些?分别的限制范围?

5.1概述:访问权限修饰符是用来限制被修饰的对象的访问范围的
5.2有这样几个:private public protected (default)
5.3可以修饰什么? 类、成员变量、成员方法
5.4类一般都是public毋庸置疑
5.5被private修饰的内容只能够在本类当中访问到
5.6被public修饰的内容,所有的类都可以访问到
5.7被default修饰的内容,可以在本类和同包中的不同类中访问到
5.8被proteced修饰的内容,可以在本类和同包中的不同类和不同包中的子类中访问到
图解见课本P32

6.static关键字作用

6.1概述:static是静态的意思,可以修饰成员变量、成员方法、还有static{ }是静态代码块
6.2特点:
6.2.1被修饰的对象存储在静态方法区当中,
随着类的加载就会被执行且只会执行一次
只执行一次的好处:占用的永远是同一块内存
6.2.1思考:右键运行后是对象先被创建还是静态代码先执行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

西瓜gh

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

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

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

打赏作者

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

抵扣说明:

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

余额充值