ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java OOP面向对象

2022-02-08 23:32:10  阅读:154  来源: 互联网

标签:gu java String 构造方法 面向对象 OOP 方法 public name


(面向对象)类与对象

什么是类(月饼模具,学生类,老师类,人类) 

就是对具有相同属性和行为的物体的统称

用来描述同一类事物的属性和行为

(类是所有对象的通常)

什么是对象(每一个月饼就是一个对象,张三同学,李四老师,王五同学) 

客观存在的事物皆为对象

具体一点说:就是某一类事物的体现

类与对象的关系

一个月饼是月饼模具的具体实例(一个月饼是真实存在的实物)

对象是类的实体体现

一.如何创建类

1.创建一个类

//(类名首字母大写,如果由多个单词组成,建议每个单词首字母大写) 

访问修饰词 class 类名{

}

2.编写类的属性(成员变量)

属性:姓名 性别 身份证 科目 年龄......

String name;

String sex;

int age;

访问修饰词 数据类型 变量名;

3.编写类的行为(成员方法)

行为:吃饭 睡觉 打游戏 考试......

方法五要素:

访问修饰词   返回值   方法名  (方法参数){

方法体

}

案例:    (怎么创建类)

/*

在同一个java文件中只能有一个public修饰的class    (不包含内部类的说法)

而且public修饰class的类名必须与java文件名相同

*/

public class Demo01 {

public static void main(String[] args) {

}

1.创建类的方法

class  a{

2.编写类的属性(成员变量)

String name;

int age;

3.编写类的行为(成员方法)

public void eat(String str){

System.out.println(name+"的年龄"+age);

}

}

二.访问修饰词 

java访问修饰词(可以修饰类,可以修饰方法,可以修饰成员变量) 

private : 私有的,只能在本类中访问

public : 公共的,公开的,表示任何地方都可以访问 

default : (什么都不写)只能被本类或者同一个包中的类访问

protected : 受保护的,可以被本类,同一个包中的类,以及子类访问 

同一个类      同一个包      子类       任何地方

private              1

default              1             1

protected            1             1            1

public               1             1            1            1

在同一个java文件中只能有一个piblic修饰的class  (不包含内部类的说法)

而且public修饰的class的类名必须与java文件名相同

三.通过类创建对象

1.创建对象的格式

类名 对象名=new 类名();

2.调用成员变量(属性)  /  方法的格式(行为)

对象名.成员变量

对象名.成员方法()

例如:

public class Demo01 {

public static void main(String[] args) {

//创建对象的格式

//类名 对象名=new 类名();

Student gu=new Student();

//通过gu调用name属性            (成员变量的引用)

gu.name="姑苏";

gu.age=18;

//通过gu调用方法               (方法的引用)

gu.eat("KFC");

System.out.println("姑苏的性别:"+gu.sex);

}}

class  Student{

String name;

int age;

public void   eat (String str){

System.out.println(name+"正在"+str);

}

}

:构造方法

构造方法/构造函数/构造器

是一种特殊的方法

普通方法(五要素)

修饰词 返回值 方法名(方法参数){

方法体

}

(1):构造方法(特殊的方法)(四要素)

写法:

1.修饰词 方法名(方法参数){

方法体

}

(2):方法名与类同名 

class Student{

//学生类的属性.

String name;

String sex;

public void eat(String str){

System.out.println(name+"正在吃"+str);

}

//无参构造              (用来初始化成员变量)

public Student(){

name=null;

sex=null;

}

//有参构造       (方法的重载 ) 

public Student(String n,String s){

name=n;

sex=s;

}

}

构造方法 :(使用)

public  class Demo{

public static void main(String[] args) {

//创建对象的格式

//类名 对象名=new 类名();

Student gu=new Student();    (无参)

Student gu=new Student(n:”姑苏”,s:18);    (有参)

//通过gu调用name属性            (成员变量的引用)

gu.name="姑苏";

gu.age=18;

//通过gu调用方法               普通(方法的引用)

gu.eat("KFC");

}

}

//创建的类

class  Student{

//定义成员变量

String name;

int age;

//创建的方法

public void   eat (String str){

System.out.println(name+"正在"+str);

}

//无参构造       (用来初始化成员变量)

public Student(){

name=null;

age=0; 

}

//有参构造       (方法的重载 ) 

public Student(String n, int s){

name=n;

age=s;

}

}

构造方法 :(调用)

普通方法的调用

对象名.方法名()

构造方法的调用

new 类名();         创建对象的同时调用构造方法,用来初始化成员变量

如果创建类的时候,没有给类手动添加构造方法,系统会默认补充一个无参构造

如果创建类的时候,有手动添加构造方法,系统不会提供默认的无参构造

构造方法的作用:用来初始化成员变量

/*

如果没有对成员变量赋值

那么:

如果成员变量是基本类型数,则默认值为0

如果成员变量是引用类型(除了基本类型以外的所有类型),则默认值为null 

如果成员变量是boolean,则默认值是false

*/

构造方法的注意事项  [  理解  ] 

构造方法的创建

如果没有定义构造方法,系统将给出一个默认的无参构造

如果定义了构造方法,系统将不会提供默认的无参构造

构造方法的重载(方法名相同,参数列表不同)

如果自定义了带参数的构造方法,new对象的时候还是调用的无参构造,

就必须再写一个无参构造方法

推荐的构造方法的创建方式

无论是否使用,都需要手动添加一个无参构造

重要功能

可以使用带参数的构造,为成员变量进行初始化

.成员变量和局部变量

成员变量和局部变量的区别

类中定义的位置 : 成员变量(类中方法外定义)

局部变量(方法内或方法的声明上)

初始化值不同: 成员变量(有默认的初始化值)

              局部变量(没有默认初始化值,必须先定义,赋值才可以使用)

生命周期: 成员变量(随着对象的存在而存在,随着对象的消亡而消亡)

局部变量(随着方法的调用而存在,随着方法的调用完毕而消失)

public class Demo03 {

int b;//成员变量

public static void main(String[] args) {

int a=10;//局部变量

}

//d也是局部变量

public static void test(int d){

int b=20;//局部变量

System.out.println(b);

}

}

标签:gu,java,String,构造方法,面向对象,OOP,方法,public,name
来源: https://blog.csdn.net/m0_46498671/article/details/122833293

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有