一粒尘埃 在空气中凝结 最后生成磅礴的风
生活有时会像一场暴风雨,狂风骤雨让人无法呼吸,但即使如此,也请记住,每一次风雨过后都会是一轮明媚的阳光。在黑暗中寻找光明,在困境中寻找希望,因为最终胜利属于那些永不放弃的人。不要让困难击垮你的意志,不要让挫折阻碍你的前进,相信自己,坚持不懈地追求梦想,你会发现,每一次努力都是值得的。在人生的旅途中,每一步都是成长,每一次挑战都是历练,愿你在风雨过后看到彩虹,在黑夜中找到曙光,因为你的坚强和勇气将会开启生活的奇迹。无论前方道路多么崎岖,都请牢记,你拥有无限的可能性和力量,相信自己,勇敢迈向未来,因为你值得拥有更美好的生活。愿你的每一天都充满阳光和希望,愿你的梦想如同繁星般闪耀,愿你永远坚定地走在属于自己的道路上,与生活共舞,与梦想同行。
2024/4/2
练习:A是B C的父类
1.用A作参数
package ext;
public class A {
public void hello(){
System.out.println("你好");
}
}
package ext;
public class B extends A{
}
package ext;
public class C extends A{
}
package ext;
public class Test5 {
public void invoke(A a){
a.hello();
}
public static void main(String[] args) {
Test5 t=new Test5();
B b=new B();
t.invoke(b);
C c=new C();
t.invoke(c);
}
}
2.用A当返回值类型
package ext;
public class Test6 {
public static void main(String[] args) {
Test6 t=new Test6();
B b=(B)t.getOjb(1);
b.hello();
C c=(C)t.getOjb(2);
c.hello();
}
public A getOjb(int type){
A a=new A();
if(type==1){
a=new B();
}
if(type==2){
a=new C();
}
return a;
}
}
12.面向对象的特征
3)覆盖(重写:只存在于父子关系(只存在于子类)当中)
使用条件:需要对公共代码进行改进 升级时 可以使用重写
作用:父类接收子类 在重写的前提下 会调用重写的方法
package ext;
/**
* 访问数据库 在项目中 一般情况下 都是使用MySQL的
*
*
*/
public class DBDao {
public void accessDB(){
System.out.println("访问MySQL");
}
}
package ext;
//根据开发的需要 需要让ADao 访问Oracle
public class ADao extends DBDao{
@Override //覆盖 重写
public void accessDB(){
System.out.println("改成Oracle");
}
}
package ext;
public class BDao extends DBDao{
}
package ext;
public class Test8 {
public static void main(String[] args) {
DBDao dao=new ADao();
//父类接收子类 在重写的前提下 会调用重写的方法
dao.accessDB();
}
}
4)构造方法
那么我们希望在创建对象的时候 就给他赋值 我们应该怎么解决这个问题呢?
a.什么时候写构造方法?
当类中 有属性 需要在创建对象的时候 需要为属性赋值 构造方法
b.怎么写构造方法?
public 类名(数据类型 参数1,数据类型 参数2){
}
c.构造方法的作用:为属性赋值
d.执行时机:new Student;
创建学生类 并为属性赋值
public class Student {
private String stuName;
private String stuSex;
public Student(String name,String sex){
stuName=name;
stuSex=sex;
}
public String getStuName() {
return stuName;
}
public void setStuName(String stuName) {
this.stuName = stuName;
}
public String getStuSex() {
return stuSex;
}
public void setStuSex(String stuSex) {
this.stuSex = stuSex;
}
}
public class Test {
public static void main(String[] args) {
Student student=new Student("zhangsan","nan");
System.out.println(student.getStuName()+" "+student.getStuSex());
}
}
练习:创建Teacher类 为属性赋值 tid tname tsex
public class Test2 {
public static void main(String[] args) {
Teacher teacher=new Teacher(1,"lisi","nv");
Teacher teacher1=new Teacher(2,"jie","nan");
System.out.println(teacher.getTid()+" "+teacher.getTname()+" "+teacher.getTsex());
System.out.println(teacher1.getTid()+" "+teacher1.getTname()+" "+teacher1.getTsex());
}
}
public class Teacher {
private int tid;
private String tname;
private String tsex;
public Teacher(int id,String name,String sex){
tid=id;
tname=name;
tsex=sex;
}
public int getTid() {
return tid;
}
public void setTid(int tid) {
this.tid = tid;
}
public String getTname() {
return tname;
}
public void setTname(String tname) {
this.tname = tname;
}
public String getTsex() {
return tsex;
}
public void setTsex(String tsex) {
this.tsex = tsex;
}
}
练习:创建分数类 为courseName 对象类型Student student 赋值
public class Course {
private String courseName;
private Student student;
public Course(String name,Student s){
courseName=name;
student=s;
}
public String getCourseName() {
return courseName;
}
public void setCourseName(String courseName) {
this.courseName = courseName;
}
public Student getStudent() {
return student;
}
public void setStudent(Student student) {
this.student = student;
}
}
public class Test2 {
public static void main(String[] args) {
Teacher teacher=new Teacher(1,"lisi","nv");
Teacher teacher1=new Teacher(2,"jie","nan");
System.out.println(teacher.getTid()+" "+teacher.getTname()+" "+teacher.getTsex());
System.out.println(teacher1.getTid()+" "+teacher1.getTname()+" "+teacher1.getTsex());
}
}
2024/4/3
4)构造方法
a.什么时候写构造方法?
当类中 有属性 需要在创建对象的时候 需要为属性赋值 构造方法
b.怎么写构造方法?
public 类名(数据类型 参数1,数据类型 参数2){
xxx=xxx;
}
c.构造方法的作用:为属性赋值
d.执行时机:new Student;
e.构造方法在一个类当中可以有多个:在不同情况下 为不同的属性赋值 满足不同的需求
练习:创建一个Stu类 属性为 Teacher teacher 和 Course course (cname,csore)
public class Teacher {
private int tid;
private String tname;
private String tsex;
public Teacher(int id,String name,String sex){
tid=id;
tname=name;
tsex=sex;
}
public int getTid() {
return tid;
}
public void setTid(int tid) {
this.tid = tid;
}
public String getTname() {
return tname;
}
public void setTname(String tname) {
this.tname = tname;
}
public String getTsex() {
return tsex;
}
public void setTsex(String tsex) {
this.tsex = tsex;
}
}
public class Course {
private String cname;
private int cscore;
public Course(String name,int score){
cname=name;
cscore=score;
}
public String getCname() {
return cname;
}
public void setCname(String cname) {
this.cname = cname;
}
public int getCscore() {
return cscore;
}
public void setCscore(int cscore) {
this.cscore = cscore;
}
}
public class Stu {
private Teacher teacher;
private Course course;
public Stu(Teacher t){
teacher=t;
}
public Stu(Course c){
course=c;
}
public Teacher getTeacher() {
return teacher;
}
public void setTeacher(Teacher teacher) {
this.teacher = teacher;
}
public Course getCourse() {
return course;
}
public void setCourse(Course course) {
this.course = course;
}
}
public class Test3 {
public static void main(String[] args) {
Teacher t=new Teacher(1,"jie","nan");
Stu stu=new Stu(t);
System.out.println(stu.getTeacher().getTid()+" "+stu.getTeacher().getTname()+" "+stu.getTeacher().getTsex());
Course c=new Course("gaoshu",100);
Stu stu1=new Stu(c);
System.out.println(stu1.getCourse().getCname()+" "+stu1.getCourse().getCscore());
}
}
注意:在我们不写构造方法的前提下 类中也存在一个默认构造方法(无参构造方法)
在人生的旅途中,难免会遇到挫折和困难,但正是这些挑战让我们变得更加坚强和成熟。不要害怕失败,因为失败并不代表终结,而是一个新的开始。每一次跌倒都是为了更好的站起来,每一次挫折都是为了更坚强的前行。坚持不懈,勇敢追求自己的梦想,相信自己的能力,因为你拥有无限的潜力和可能性。不论前方的路有多么崎岖,只要心怀信念和勇气,你定能战胜困难,收获属于你的成功和幸福。愿你永远坚定地走在人生的道路上,勇往直前,勇敢追梦,因为你就是无限可能的源泉。前路漫漫,愿你始终怀揣希望和勇气,勇敢前行,勇敢生活。
一粒沙石 在蚌体内打磨 最后结成昂贵的珍珠
雾都不起风
太阳升起时你未曾离开 太阳落下时希望你依然还在.
公众号