Java面向对象2
Posted 小鹿可可乐
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java面向对象2相关的知识,希望对你有一定的参考价值。
面向对象
1.封装
目的:提高数据安全性,可实现对属性的访问权限控制,增加可维护性
封装:将属性私有化,使用private关键字完成属性私有化,只能本类访问
对每一个私有属性提供public的set和get这种方法供外界来访问我们的私有属性
1.1代码举例
class Girl{
private String name;
private int age;
private String tel;
//提供一个公有的设置属性的方法
public void setName(String myName){
name = myName;
}
public String getName(){
return name;
}
/*
共有的方法可以被其他类访问,这个方法又是Girl的本类方法,可以访问私有属性,在其他类中通过调用这个公有的方法可以简接的来访问属性
*/
public void introduce(){
System.out.println("名字:"+name+"年龄:"+age+"电话:"+tel);
}
}
public class TestGirl{
public static void main(String args[]){
Girl g = new Girl();
//通过公有的方法设置私有属性
g.setName("小红");
g.introduce();//获得的名字会在方法中
//通过公有的get方法来获得私有属性
String name = g.getName();
}
}
2.this 关键字
2.1用法一
this只能在对象方法(无static)内使用;
谁调用方法,this就是谁
public void playGame(){
System.out.println(this);
System.out.println(this.name);//this也可省略
}
1、对于类的对象来说,属性是每个对象都有一份的,是数据隔离的,但方法是多个对象共享,
2、对象调用对象:本类的对象方法可以直接调用对象方法,隐藏了this,this就是调用playGame的p
2.1.1 this在封装中的使用
区分同名属性和局部变量名字
class Girl{
private String name;
public void setName(String name)
{
this.name = name;
}
public String getName()
{
return name;
}
}
2.2用法2
在构造器中使用
3.构造器
用于创建对象的方法
1、语法:
权限修饰符 类名 (数据类型 参数名,…){
}
2、构造器本身是一个方法:
- 无返回值,无void
- 构造器的方法名必须和类名一致
- 在方法中定义可以初始化参数列表
3、构造器实例
class Hero{
String name;
String horse;
/*
有参数的构造器可以给属性初始化
*/
public Hero(String name,String horse){
this.name = name;
this.horse = horse;
}
public void info(){
System.out.println("名字:"+name+"坐骑:"+horse);
}
}
public class test_1 {
public static void main(String[] args) {
Hero h = new Hero("刘备","的卢马");
h.info();
}
}
4、构造器间可以进行重载
5、一个类存在有参数的构造器那么默认的构造器就被覆盖,如果想使用默认构造器,就得把他显示
3.1 构造器间的调用
1、同一个类中构造器可以相互的调用,需要通过this来调用
public Her(String name,String horse){
this.name = name;
this.horse = horse;
}
public Her(String name,String horse,int age){
this(name,horse);//调用本类的初始化2个参数的构造器
this.age = age;
}
2、this(…)必须放到构造器的第一行
3、如果在构造器中调用其他构造器不创建对象,只初始化
4、static静态关键字
4.1 属性上
加上static的属性是类属性,静态属性
特点:
- 可通过 类名.类属性 的方式,还可通过对象
class Student{
static int scount();//类属性
}
public class Test {
public static void main(String[] args) {
Student s = new Student();
System.out.println(Student.scount);//1
System.out.println(s.scount);//2
}
- 类属性的当前class文件加载进入jvm,类属性就被初始化,jvm执行完毕再销毁
- 类属性可以被这个类每一个对象共享
4.2 方法上
类方法
语法:
特点:
- 调用:类名.类方法 也可通过对象
- 类方法的当前class文件加载进入jvm,类方法就被初始化,jvm执行完毕再销毁
- 类方法不能访问对象属性和对象方法(类方法只能访问类属性和类方法)
- 对象方法内可以访问对象属性,对象方法,类属性,类方法
4.3静态代码块
语法:
特点:
- 主要用于初始化资源
- 再main之前执行
- 可以范围类属性(必须先定义)和方法
今天也要好好学习呀~
以上是关于Java面向对象2的主要内容,如果未能解决你的问题,请参考以下文章