【JAVA语法】02Java-封装性
- 类与对象的概念
- 封装性
- 类方法
- 静态变量
- 引用传递
一、类与对象的概念
1.1 方法的重载:名称相同,参数类型或个数不同(不以返回值作为区分)
1.2 类与对象的关系
Person per = null; //对象声明
per = new Person(); //实例化操作
Person per = new Person(); //声明并实例化
//未实例化——空指针异常
//Exception in thread "main" java.lang.NullPointerException
1.3 内存的划分
1.4 面向对象三大特征
封装——对外部不可见
继承——拓展类的功能
多态——方法的重载&对象的多态性
二、封装性
2.1 通过关键字privata实现封装性
2.2 利用类的public方法,为外部所访问(间接访问)
//编译器推荐的方法(可自动生成)
class Person
{
private int age;
public int getAge()
{
return age;
}
public void setAge(int age)
{
this.age = age;
}
}
//编译器自动生成Set 和 Get方法:
Rightclick——>Source——>Generate Setters and Getters
2.3 匿名对象
没有名字的对象(程序中只使用一次之后即自动回收)
class Person{
public void speak()
{
System.out.println("Hello Java!");
}
}
public class test01 {
public static void main(String[] args)
{
//Type one
//Person per = new Person();
//per.speak();
//Type two
new Person().speak();
}
}
2.4 构造方法
1.格式:访问修饰符 类名称(){
代码块
}
2.无返回值,无需手动调用
3.方法名必须与类同名,主要用于初始化类中的属性
4.每个类实例化时都会调用构造方法(如果没有手动编写,程序将自动创建无参的构造方法)
class Person{
//构造方法
public Person()
{
System.out.println("Hello Java!");
}
}
public class test01 {
public static void main(String[] args)
{
Person per = new Person();//构造方法自动调用
}
}
三、类方法
3.1 由static 修饰的方法——>类方法(即静态方法)
3.2 保存在内存的方法区
二、静态变量(类变量)
4.1 在类中是全局变量,由JVM自动初始化(不同于局部变量——>需要手动初始化赋值)
4.2 与类同时存在,同时消亡
五、引用传递
5.1 引用传递
纯String类型的数据不能更改(其余数据可以)
public class test01 {
public static void main(String[] args)
{
String temp = "Hello";
System.out.println(temp);
tell(temp);
System.out.println(temp);
}
public static void tell(String str2){
str2 = "World";
}
}
Output:
Hello
Hello
5.2 this关键字
1.用途:
a)表示类中的属性和调用方法
class People{
private String name;
public People(String name ){
this.name = name; //this 指向本类的属性
}
}
b)调用本类中的构造方法
class People{
private String name;
public People(String name ){
this(); //调用本类的无参构造方法
//此时this只能放首行
this.name = name; //this 指向本类的属性
}
public People(){
System.out.println("无参构造方法");
}
}
c)表示当前对象
5.3 static关键字
a)static属性——全局属性(公有属性)
static方法——直接通过类名调用
b) 注意点:
static方法只能访问static声明的属性和方法;
//main 方法为static
static属性与方法都要用类名来调用(否则会有warning)