第二周学习总结(深入编程之路)

第二周学习总结

方法

方法:就是使用{}包起来的内容,给{}独立的代码块起一个名字,以便于复用。

	定义方法的格式
	
		1:有具体返回值类型的方法定义
		2:没有具体返回值类型的方法定义

	有具体返回值类型的方法定义
	
	权限修饰符 静态修饰符  返回值类型  方法名(数据类型1 变量名1,数据类型2 变量名2,......){
			业务内容;
			
			return 结果;
	}

方法的调用

同类中的方法调用:
	有返回值的方法调用:方法返回值的数据类型 变量名 = 方法名(参数);
	无返回值的方法调用:方法名(参数);

方法的重载

	为了将功能相似的方法定义同一个方法名,JAVA提供了方法重载技术,即overload。
	方法重载是方法名相同,但是参数列表不同。
	参数列表不同包括:参数的数据类型不同,参数的数量不同,参数的数据类型的顺序不同。
	与返回类型无关,与变量名无关
	如以下几个重载关系的方法:
public  void arr(){}
public  int arr( int a){}
public  void arr(double d,int a){}
public  double arr(int a,double d){}

数组

一维数组
动态初始化:

标准格式:
数据类型[] 数组名称 = new 数据类型[数组长度] ;
数据类型 数组名称[] = new 数据类型[数组长度] ;
int[] arr = new int[3] ;

静态初始化:

标准格式:
数据类型[] 数组名称 = new 数据类型[]{元素1,元素2,元素3,,,,} ;
数据类型 数组名称[] = new 数据类型[]{元素1,元素2,元素3,,,,} ;

简写方式:
数据类型[] 数组名称 = {元素1,元素2,元素3,,,,}  ;
数据类型 数组名称[] = {元素1,元素2,元素3,,,,}  ;
int[] arr = new int[]{1,2,3} ;
int[] arr = {1,2,3} ;

二维数组

数据类型 [][] 数组名称 = new 数据类型[][]{{元素1,元素2,元素3…},{元素1,元素2,元素3,…},{,}};
数据类型 [][] 数组名称 = {{元素1,元素2,元素3…},{元素1,元素2,元素3,…},{...}};

二维数组遍历

数组名.length;//数组的行数
数组名[i].length//数组的列数
二维数组的遍历:
public static void print2Arr(int [][] arr){
	for(int i=0;i<arr.length;i++){
	System.out.print("{");
		for(int j=0;j<arr[i].length;j++){
			if(j==(arr[i].length-1)){
				System.out.println(arr[i][j]+"}");
			}else {
				System.out.print(arr[i][j]+", ");
		}
		}
	System.out.println();
	}
}

冒泡排序的思想:

	两两比较,将较大的值往后放,第一次比较完毕,最大值出现在
最大索引处,依次这样比较...
	规律:
			两两比较,将较大的值往后放
			总共比较的次数:数组长度-1次
class ArrayDemo{
	public static void main(String[] args){
		int[] arr = {24,60,87,57,13} ;
		//调用数组遍历的功能
		System.out.println("排序之前:") ;
		printArray(arr) ;
		bubbleSort(arr) ;
		System.out.println("排序之后:") ;
		printArray(arr) ;
	}

	//排序的功能	
	public static void bubbleSort(int[] arr){
		for(int x = 0 ; x < arr.length-1 ; x ++ ){//循环次数
			for(int y = 0 ;y < arr.length-1-x; y++){ //元素比较
				//判断:
				if(arr[y] > arr[y+1]){
					int temp = arr[y] ;
					arr[y] = arr[y+1] ;
					arr[y+1] = temp ;
				}
			}
		}
	}
	
	//遍历的功能
	public static void printArray(int[] arr){
		System.out.print("[");
		for(int x = 0 ; x < arr.length ; x ++){
			//判断
			if(x== arr.length-1){
				System.out.println(arr[x]+"]") ;
			}else{
				System.out.print(arr[x]+", ") ;
			}
		}
	}
}

面向对象

面向对象的概念

万物皆对象,每个对象具有自己的属性和行为.
面向对象就是一对象为核心,通过对象来访问对象的属性和方法来完成一系列功能.
类是对象的模板,是JAVA语言用来描述现实事物的最小单位,而对象就是			对类的实例化.

对象的创建

	对象是对抽象的类的一个实例化,对象的创建需要先创建一个类:
	class  类名{
		数据类型 成员变量1;
		数据类型 成员变量2;
		修饰符 返回值类型 成员方法(参数){
		}
	}

通过new关键字,创建一个对象

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

对象的使用

	java中通过对象来访问其属性和方法:
	对象名.成员变量;
	对象名.成员方法();

匿名对象

匿名对象是没有名字的对象,一般只使用一次.
定义匿名对象:new Student()
//匿名对象作为参数使用:
class Student{
	public void demo(Student stu){
	}
}
class Demo {
	public static void main(String[] args){
		Student stu=new Student();
		stu.demo(new Student());//使用方法Demo;
	}
}

成员变量、局部变量区别

1.内存空间不同:
局部变量是在栈中开辟空间;成员变量是在堆中开辟空间.
2.定义位置不同:
局部变量是定义在方法中,随着方法的结束而释放.成员变量是定义在类中,与方法平级.
3.初始化不同:
局部变量必须手动初始化后才可以使用,而成员变量系统会默认初始化.
4.生命周期不同
局部变量在使用完毕后就会释放,成员变量再使用方笔后需要等到垃圾回收器空闲时释放。

什么时候将变量定义为成员变量? 
答:如果变量能够描述生活中事物的属性的话,这个时候将变量定义为成员变量;否则,就局部变量

三大特征之(封装)

private关键字的特点:
1)private可以修饰一个类中的成员变量,也可以成员方法
2)被private修饰的成员变量或者是成员方法只能在本类中方法,外界不能访问的!(保证数据的安全性)

什么时候将变量定义为成员变量?
答:如果该变量能够描述某个事物属性的话,----变量就要定义成员变量!

封装示例:

class Demo{

	//定义一个成员变量
	int num = 10;
	private int num2 = 30 ; //私有修饰,只能在Demo类中访问,外界要访问需要通过公共的方法来访问!
	
	//成员方法
	public void method(){
		System.out.println(num) ;
		System.out.println(num2) ;
		System.out.println("method demo...") ;
	}
	
	//私有的成员方法
	private void function(){ //私有的方法,只能在本类中访问
		System.out.println("function demo...") ;
	}
	//公共方法
	public void show(){
		function() ;
	}
}
//测试类
class PrivateDemo{
	public static void main(String[] args){
		//创建Demo类的对象
		Demo d = new Demo() ;
		d.num = 50 ; //num成员变量在Demo类中没有被private修饰
		System.out.println(d.num) ;
		//d.num2 = 100 ; //System.out.println(d.num) ;
		//System.out.println(d.num2) ;
		System.out.println("-------------------------") ;
		
		d.method() ;
		//d.function() ;// function() 在 Demo 中是 private 访问控制
		d.show() ;
	}
}

标准类

java标准类也就javaBean,使用javaBean可以封装对象的属性,使得程序安全性提高.

标准类需要满足4个条件:

1.成员变量采用private修饰.
2.为每个成员变量写一对get/set方法
3.有一个无参的构造方法.
4.有一个全参的构造方法.

标准类示例:

class Student {
	 
	private int id; //学号
	private String name;//姓名
	private int age ;  //年龄
	private String sex;//性别
	
	
	public Student(){}//无参构造方法
	public Student(int id,String name){//有参构造方法
		System.out.println("Student有参构造");
		this.id=id;
		this.name=name;	
	}
	public Student(int id,String name,int age ,String sex){
		System.out.println("Student有4个参构造");
		this.id=id;
		this.name=name;	
		this.age=age;
		this.sex=sex;
	}
	
	public void show(){
		System.out.println("id:"+id+"---"+name+"---"+age+"---"+sex);}
	public void setId(int id1){//15
		id = id1 ;
	}
	public int getId(){
		return id;}
	public void setName(String name){
		this.name = name ;
	}

	public String getName(){
		return name;}
	public void setAge(int age){//15
		this.age = age ;}
	public int getAge(){
		return age;}
	public void setSex(String sex){
		this.sex = sex ;}
	
	public String getSex(){
		return sex;
	}
}

构造方法

什么是构造方法:
	1)方法名和类名相同
	2)没有具体的返回值类型
	3)并且连void都没有
	
	权限修饰符 + 方法名就是类名() {
	}
	
	构造方法主要作用:就是给该对象中的数据进行初始化!

构造方法中的注意事项:

	1)在一个类中,我们不写无参构造方法,系统会默认的提供一个无参构造方法,
		
	2)如果我们提供一个有参构造方法,系统不会在提供无参了,如果使用无参构造方法创建对象,就会报错!

示例

	//使用有参构造方法时,必须先给出无参构造方法
	public Teacher()//提供一个有参构造方法,带一个参数的字符串类型的
	public Teacher(String name){
		this.name = name ;

构造方法的重载

class Photo{
	private String brand ; //品牌
	private String color;//颜色
	private double price;//价格
	
	public Photo(){}
	public Photo(String brand,double price){
		System.out.println("Photo二个参数有参构造");
		this.brand=brand;
		this.price=price;
	}
	public Photo(String brand,double price,String color){
		System.out.println("Photo三个参数有参构造");
		this.brand=brand;
		this.color=color;
		this.price=price;
	}
}

成员方法

成员方法的分类:(非静态的成员方法)
	两种情况:
		有返回值类型:
			1)有返回值类型,并且有参数
			2)有返回值类型,没有参数
		没有具体返回值:void代替
			1)没有返回值类型,带参
			2)没有返回值类,不带参
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个可能的计算机专业实习的实习周记总结,共10周。请根据你的实习经历进行适当的修改和调整。 第1周: 这周我开始了我的计算机专业实习,我被分配到了开发团队,我很兴奋。我主要的任务是帮助团队开发一个新的Web应用程序,这个应用程序将帮助客户更好地管理他们的业务流程。 在这个星期,我学习了公司的开发流程和工具。我还学习了使用一些新的编程语言和工具,包括JavaScript和Git。我发现这个实习很有挑战性,但我也很享受学习新东西的过程。 第2周: 这周我开始着手进行一些实际的开发工作。我在公司的开发环境中设置了一个新的项目,我使用React编写了一个简单的用户界面。我也学会了如何使用Jest进行测试。 我的导师对我非常耐心地解释了一些编程问题,我对我的编程技能有了更深入的理解。这周我也学到了很多关于敏捷开发的知识,这对于我的工作非常有帮助。 第3周: 这周我与其他团队成员一起合作编写代码。我负责一些小任务,比如创建表单和处理表单提交。我意识到我的工作与其他团队成员的工作紧密相关,我们需要相互协作才能成功地完成项目。 我还参加了一些团队会议,了解了一些关于公司业务的信息。这使我更加了解公司的目标和工作重点,这有助于我更好地完成我的工作。 第4周: 这周,我开始对我的代码进行调试。我发现有些错误很难找,但是我学到了如何使用调试工具来帮助我找到这些错误。 我还与我的导师一起进行了一些代码审核。他们对我的代码进行了审查,提出了一些建设性的意见。这对我来说是一个很好的经验,因为我学到了如何写更好的代码。 第5周: 这周我与另外一个开发团队合作,他们负责开发后端应用程序。我负责与他们协作,确保前端和后端代码能够顺利交互。这让我更好地了解了整个应用程序的架构和流程。 我还学习了一些关于代码部署的知识,包括如何将代码部署到生产环境中。这些知识对于我未来的工作非常有帮助。 第6周: 这

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值