【JAVA培训】学习面向对象编程(基础篇)

因为之前学习的java知识只属于java的基本程序设计范畴,属于结构化的程序开发,并不难,所以我选择跳过关于之前知识点的总结,而是选择总结关于面向对象编程(基础篇)的知识点。

1.面向对象的基础概念

主要介绍面向对象的程序设计的三个主要特性:封装性,继承性,多态性

封装性:将对象的属性及行为看成一个整体,将这个整体进行封装,并可规定不同级别的“可见性”或访问权限

继承性:被继承的类称为父类或超类,而经继承产生的类称为子类或派生类,派生类继承了超类的所有成员,并相应地增加自己的一些新成员。继承又可分为单继承和多继承,java通过接口的方式弥补了java子类不能继承多个父类的缺点

多态性:多态是允许程序中出现重名现象。可分为方法重载(属于之前知识,不做解释)和对象多态。对象多态是指子类对象可以和父类对象进行相互的转换,而且根据其使用的子类的不同完成的功能也不同

2.类与对象

定义一个person类

class Person{
      String name;
      int age;
public void tell(){
      System.out.println("姓名:"+name+",年龄:"+age);
}
}

创建一个对象

public class Demo01{
     public static void main(String agrs[]){
          person per = new Person();
     }
}

注意:对象使用前一定要实例化

3.封装性

被封装的属性必须通过setter和getter方法来设置和取得

class Person {
	private String name;
	public void tell(){
		System.out.println("姓名:"+getName());
	}
	public String getName() {
		return name;
	}
	public void setName(String n){
		name = n;
	}
	}

4.构造方法

注意:(1)构造方法的名称必须与类名称一致

(2)构造方法的声明处不能有任何返回值类型的声明

(3)不能在构造方法中使用return返回一个值

class Person {
	private String name;
	private int age;
	public Person(){}
	public Person(String name) {
		this.setName(name);
	}
	public Person(String name , int age) {
		this.setName(name);
		this.setAge(age);
	}
	public void tell(){
		System.out.println("姓名:"+getName()+",年龄:"+getAge());
	}
	public String getName() {
		return name;
	}
	public void setName(String n){
		name = n;
	}
	public int getAge() {
		return age;
	}
	public void  setAge(int a) {
		if(a>=0 && a<150) {
			age = a;
		}
	}

}
    public class ConsDemo03{
    	public static void main(String arg[]) {
    		Person per1 = new Person();
    		Person per2 = new Person("李四");
    		per1.tell();
    		per2.tell();

 在定义有参构造方法前要一般先定义一个无参构造方法

5.匿名对象

一般匿名对象只使用一次,而且只在堆内存开辟空间

​
public class ConsDemo03{
    public static void main(String arg[]) {
         new Person("小丽",12).tell();
}
}   		

​

6.String类

String有两种实例化对象的的方式,一是通过直接赋值,二是用new调用构造方法。二者区别在于前一种只会开辟一块堆内存空间,后者会开辟两块堆内存空间

注意:(1)在String类中“==”是比较字符串的地址值,而非内容

(2)字符串的内容一旦声明则不可改变,一个String对象内容的改变实际上是通过内存地址的“断开-连接”变化完成的

关于String类中的常用方法,我不做过多赘述

7.引用传递及基本应用

引用传递就是将堆内存空间的使用权交给多个栈内存空间

8.关键字

this关键字作用:

(1)表示类中的属性

(2)可以使用this调用本类的构造方法(注意:使用this调用方法必须放在构造方法的第一行)

(3)this表示当前对象

class Person {
	private String name;
	private int age;
	public Person(String name , int age) {
		this.name=name;       //作用(1)
		this.age=age;
	}
	public String getInfo(){
		System.out.println("姓名:"+this.name+",年龄:"+this.age);
	}
	

}
    public class ConsDemo03{
    	public static void main(String arg[]) {
    		Person per2 = new Person("李四",23);
    		System.out,println(per2.getInfo());
}
}
​
class Person {
	private String name;
	private int age;
    public Person(){
          System.out.println("实例化对象");
  }
	public Person(String name , int age) {
        this();                //作用(2)
		this.name=name;       
		this.age=age;
	}
	public String getInfo(){
		return "姓名:"+name+",年龄:"+age;
	}
	

}
    public class ConsDemo03{
    	public static void main(String arg[]) {
    		Person per2 = new Person("李四",23);
    		System.out,println(per2.getInfo());
}
}

​

static关键字

static属性:属性可被所有对象共享

static方法:方法可直接由类名称调用

9到13的知识点主要是理解性知识,我就不过多总结。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值