javaSE面向对象编程

面向对象编程 构造器

构造器就是和类名相同但无返回类型的方法。

public class Person { //一个类即使什么都不写,它也会存在一个方法 //显示的定义构造器 String name; //实例化初始值 //1.使用new关键字,本质是在调用构造器 //2.用来初始化值 public Person(){ } //有参构造:一旦定义了有参构造,无参构造就必须显示定义 public Person(String name){ this.name = name; } //alt+insert自动生成构造器 /* public static void main(String[] args) { Person person = new Person("Avirus"); System.out.println(person.name); } 构造器: 1.和类名相同 2.没用返回值 作用: 1.new本质在调用构造方法 2.初始化对象的值 注意点: 1.定义有参构造之后,如果想使用无参构造,就要显示定义一个无参构造 */ }

无参构造器

public class Pet { public String name; public int age; //无参构造 public void shout(){ System.out.println("叫了一声"); } /* 1.类与对象 类是一个模板:抽象,对象是一个具体的实例 2.方法 定义,调用! 3.对应的引用 引用类型: 基本类型(8) 对象是通过引用来操作的: 栈-->堆 4.属性:字段Field 成员变量 默认初始化: 数字:0 0.0 char:u0000 boolean:false 引用:null 5.对象的创建和使用 -必须使用new 关键字创造对象,构造器 Person Avirus = new Person(); -对象的属性 Avirus.name -对象的方法 Avirus.sleep(); */ } 如何访问私有属性 package oop.Demo04; /* 1.提高了程序的安全性,保护数据 2.隐藏代码的实现细节 3.统一接口 4.系统可维护性增加了 */ public class Student { //属性私有 private String name; //姓名 private int id; //学号 private char sex; //性别 public int getAge() { return age; } public void setAge(int age) { if(age > 120 || age < 0){ System.out.println("不合法"); }else { this.age = age; } } private int age; //提供一些可以操作这个属性的方法! //提供一些public的get,set方法 //get获取这个数据 public String getName(){ return this.name; } //set给这个数据设置值 public void setName(String name){ this.name = name; } //alt + insert } 封装

该露的露,该藏得藏

我们程序设计要追求"高内聚,低耦合".高内聚就说类得内部数据操作细节自己完成,不允许外部干涉;低耦合:仅暴露少量方法给外部使用

封装(数据得隐藏)

通常,应禁止直接访问一个对象中数据得实际表示,而应通过操作接口来访问,这称为信息隐藏.

记住一句话:属性私有,get/set

package oop.Demo04; /* 1.提高了程序的安全性,保护数据 2.隐藏代码的实现细节 3.统一接口 4.系统可维护性增加了 */ public class Student { //属性私有 private String name; //姓名 private int id; //学号 private char sex; //性别 public int getAge() { return age; } public void setAge(int age) { if(age > 120 || age < 0){ System.out.println("不合法"); }else { this.age = age; } } private int age; //提供一些可以操作这个属性的方法! //提供一些public的get,set方法 //get获取这个数据 public String getName(){ return this.name; } //set给这个数据设置值 public void setName(String name){ this.name = name; } //alt + insert } 继承

继承得本质是堆某一批类得抽象,从而实现对现实世界更好得建模

extends得意思是"扩展".子类是父类得扩展

Java中类只有单继承,没有多继承!

继承是类和类之间得一直关系.除此之外,类和类之间得关系还有依赖,组合,聚合等.

继承关系得两个类,一个为子类(派生类),一个为父类(基类).子类继承父类,使用关键字extands来表示

子类和父类之间,从意义上讲应该具有"is a"得关系

object类

super

方法重写

//所有类都继承了Object类 public class Person { //private //protected //public private int money = 10000000; public int getMoney() { return money; } public void setMoney(int money) { this.money = money; } public void say(){ System.out.println("说了一句话"); } } public class Student extends Person{ }

继承了父类得子类,可以使用父类中得方法

public class Application { public static void main(String[] args) { Student student = new Student(); student.say(); } }

这个地方值得注意的是被final关键字修饰的类,就不能被继承

super

super关键字是用来调用父类的属性和方法

public class Student extends Person{ private String name = "test"; public Student() { //隐藏代码super(); super();//调用父类得构造器,必须在子类得第一行 System.out.println("Student无参执行"); } public void test(String name) { System.out.println(name); System.out.println(this.name); System.out.println(super.name); } public void test1() { print(); this.print(); super.print(); } public void print(){ System.out.println("Student"); } }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzzgxd.html